1. 程式人生 > 實用技巧 >NetCore開發第一步 Log4Net日誌引入

NetCore開發第一步 Log4Net日誌引入

沒有日誌的專案不能上線,不是魯迅說的,也不是我說的,但是有理。

1、新建一個帶mvc模板的專案:

2、引入Microsoft.Extensions.Logging.Log4Net.AspNetCore包,不要引入錯了。

引入後後包的結果如下:

3、Startup類的Configure方法加入引數 ILoggerFactory loggerFactory,

名稱空間為usingMicrosoft.Extensions.Logging,

Configure方法下面增加一行,loggerFactory.AddLog4Net();

AddLog4Net方法預設會讀取配置檔名為log4net.Config的檔案,當然可以自定義檔名,如loggerFactory.AddLog4Net("MyTestLog4.Config");配置檔名則必須命名MyTestLog4.Config。

4、配置檔案內容如下:

<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <!-- Define some output appenders -->
    <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
        <file value="log\logtest.txt" />
        <!--追加日誌內容-->
        <appendToFile value="
true" /> <!--防止多執行緒時不能寫Log,官方說執行緒非安全--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <!--可以為:Once|Size|Date|Composite--> <!--Composite為Size和Date的組合--> <rollingStyle value="Composite" /> <!--當備份檔案時,為檔名加的字尾--> <datePattern value="
yyyyMMdd.TXT" /> <!--日誌最大個數,都是最新的--> <!--rollingStyle節點為Size時,只能有value個日誌--> <!--rollingStyle節點為Composite時,每天有value個日誌--> <maxSizeRollBackups value="20" /> <!--可用的單位:KB|MB|GB--> <maximumFileSize value="3MB" /> <!--置為true,當前最新日誌檔名永遠為file節中的名字--> <staticLogFileName value="true" /> <!--輸出級別在INFO和ERROR之間的日誌--> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ALL" /> <param name="LevelMax" value="FATAL" /> </filter> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/> </layout> </appender> <root> <priority value="ALL"/> <level value="ALL"/> <appender-ref ref="rollingAppender" /> </root> </log4net>

5、新建LoggerTestController控制器,建構函式依賴注入寫入日誌類,寫入測試內容:

至此已完成日誌的基本配置。