準備
第一步:nuget 引用 Microsoft.Extensions.Logging.Log4Net.AspNetCore
第二步:在項目中添加log4net.config的配置文件(配置文件在文末)
第三步:在項目中註冊使用log4net
方法一:在Program.cs中註冊,找到 Program.cs裏的CreateHostBuilder
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((context, loggingBuilder) =>
{
loggingBuilder.AddFilter("System", LogLevel.Warning);
loggingBuilder.AddFilter("Microsoft", LogLevel.Warning);
loggingBuilder.AddLog4Net();//配置文件,如果名字叫log4net.config,在根目錄則可以不指定路徑
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
方法二:在Startup中註冊,將program中的註冊換成在startup中的config註冊Log4Net
public void Configure(IApplicationBuilder app, IWebHostEnvironment env,ILoggerFactory loggerFactory)
{
loggerFactory.AddLog4Net();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
注:兩種方法二選一,兩種方法都註冊的話,日誌則會重複寫兩條
附:log4net.config配置文件
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日誌路徑-->
<param name="File" value="Logs\\" />
<!--是否是向文件中追加日誌-->
<param name= "AppendToFile" value= "true"/>
<!--log保留天數-->
<param name= "MaxSizeRollBackups" value= "30"/>
<!--日誌文件名是否是固定不變的-->
<param name= "StaticLogFileName" value= "false"/>
<!--日誌文件名格式爲:2008-08-31.log-->
<param name= "DatePattern" value= "yyyy-MM-dd".read.log""/>
<!--日誌根據日期滾動-->
<param name= "RollingStyle" value= "Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n==========%n【日誌級別】:%-5level%n【記錄時間】:%date %n【執行時間】:[%r]毫秒%n【信息詳情】%message%n" />
</layout>
</appender>
<!-- 控制檯前臺顯示日誌 -->
<appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red" />
</mapping>
<mapping>
<level value="WARN" />
<foreColor value="Yellow" />
</mapping>
<mapping>
<level value="INFO" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="DEBUG" />
<foreColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{ABSOLUTE} [%thread] %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低)-->
<level value="all" />
<appender-ref ref="ManagedColoredConsoleAppender"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>