進入現在的公司,每天都很忙碌,雖然說這樣會讓你感覺到充實,但是充實過后難免有些空虛,因為周而復始的業務邏輯不但沒有讓自己能力提高,而且還陷入每天修改別人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="log\log.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)文件中的配置:
至此,就可以正常輸出日志了。