在微软发布的ASP.NET Core 中给了一种默认的日志配置选择,那么当我们使用其他的日志中间件是如何配置呢?如下:
1、使用NutGet 获取日志库:Microsoft.Extensions.Logging.Log4Net.AspNetCore 和 Log4Net库
2、配置Program.cs
1public class Program 2 { 3 public static void Main(string[] args) 4 { 5 CreateHostBuilder(args).Build().Run(); 6 } 7 8 public static IHostBuilder CreateHostBuilder(string[] args) => 9 Host.CreateDefaultBuilder(args) 10 .ConfigureWebHostDefaults(webBuilder => 11 { 12 webBuilder.UseStartup<Startup>(); 13 }) 14 .ConfigureLogging((hosttingContext,logging)=> 15 { 16 logging.AddFilter("System", LogLevel.Warning); 17 logging.AddFilter("Microsoft", LogLevel.Warning); 18 logging.AddLog4Net(); 19 }) 20 21 ; 22 }
3、配置Startup.cs文件
1 public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) 2 { 3 if (env.IsDevelopment()) 4 { 5 app.UseDeveloperExceptionPage(); 6 } 7 else 8 { 9 app.UseExceptionHandler("/Home/Error"); 10 // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. 11 app.UseHsts(); 12 } 13 loggerFactory.AddLog4Net(); 14 app.UseHttpsRedirection(); 15 app.UseStaticFiles(); 16 17 app.UseRouting(); 18 19 app.UseAuthorization(); 20 21 app.UseEndpoints(endpoints => 22 { 23 endpoints.MapControllerRoute( 24 name: "default", 25 pattern: "{controller=Home}/{action=Index}/{id?}"); 26 }); 27 }
3、新建配置文件:
1<?xml version="1.0" encoding="utf-8" ?> 2<log4net> 3 <appender name="DebugAppender" type="log4net.Appender.DebugAppender" > 4 <layout type="log4net.Layout.PatternLayout"> 5 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> 6 </layout> 7 </appender> 8 <!--指定日记记录方式,以滚动文件的方式(文件记录)--> 9 <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 10 <!--日志路径--> 11 <file value="Log/" /> 12 <!--是否是向文件中追加日志--> 13 <appendToFile value="true" /> 14 <!--log保留天数--> 15 <param name= "MaxSizeRollBackups" value= "10"/> 16 <!--每个文件最大1M--> 17 <param name="maximumFileSize" value="1MB" /> 18 <!--日志根据日期滚动--> 19 <param name="RollingStyle" value="Date" /> 20 <!--日志文件名格式为:logs_20080831.log--> 21 <param name="DatePattern" value=""logs_"yyyyMMdd".log"" /> 22 <!--日志文件名是否是固定不变的--> 23 <param name="StaticLogFileName" value="false" /> 24 <!--布局--> 25 <layout type="log4net.Layout.PatternLayout"> 26 <conversionPattern value="%date %5level %logger.%method [%line] - MESSAGE: %message%newline %exception" /> 27 </layout> 28 </appender> 29 <root> 30 <level value="ALL"/> 31 <appender-ref ref="DebugAppender" /> 32 <appender-ref ref="RollingFile" /> 33 </root> 34</log4net>