进入现在的公司,每天都很忙碌,虽然说这样会让你感觉到充实,但是充实过后难免有些空虚,因为周而复始的业务逻辑不但没有让自己能力提高,而且还陷入每天修改别人bug的死循环中。今天刚好周末有点时间就研究了一下.net core中如何使用log4net记录日志,当然咱们也可以像以前.net framework那样创建一个LogHelper,但是咱们既然使用到了依赖注入,还是通过依赖注入的方式来实现吧。
第一步、通过nuget引入类库
<ItemGroup> <PackageReference Include="log4net" Version="2.0.12" /> <PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="3.1.5" /> </ItemGroup>
第二步、修改.net core的默认日志记录方式
修改Program.cs
第三步、编码记录日志
第四步、log4net.config文件
<?xml version="1.0" encoding="utf-8"?> <log4net> <appender name="Log4Name" type="log4net.Appender.RollingFileAppender"> <!--日志路径--> <param name="File" value="loglog.log" /> <!--是否是向文件中追加日志--> <param name="AppendToFile" value="true" /> <!--log保留个数--> <param name="MaxSizeRollBackups" value="200" /> <!--单个日志文件大小--> <param name="MaximumFileSize" value="5MB" /> <!--日志文件名是否是固定不变的--> <param name="StaticLogFileName" value="false" /> <!--日志文件名格式为:2008-08-31.log--> <DatePattern value="yyyy-MM-dd HH'时.log'"></DatePattern> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Size" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date %5level %logger.%method [%line] - MESSAGE: %message%newline %exception" /> </layout> </appender> <root> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value="ALL" /> <appender-ref ref="Log4Name" /> </root> </log4net>
第五步、调整日志级别
首先咱们必须要清楚,日志的记录首先是通过.net core的日志记录器输出日志,然后再通过log4net进行文本输出,因此这里有两个地方需要控制日志级别,log4net的日志基本不用赘述,如下:
(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低)
而.net core的日志级别则需要调整appsettings.json(或appsettings.Development.json)文件中的配置:
至此,就可以正常输出日志了。