准备
第一步: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>