1. 程式人生 > 實用技巧 >NET CORE引用log4net日誌檔案的應用

NET CORE引用log4net日誌檔案的應用

日誌作為快速定位程式問題的主要手段,日誌幾乎是所有程式都必須擁有的一部分,下面我們就看下NET CORE環境下怎麼使用log4net:

1.下載log4net.dll和Microsoft.Extensions.Logging.Log4Net.AspNetCore.dll檔案 ;

2.建立自己的專案

3.在自己專案下的引用log4net.dll和Microsoft.Extensions.Logging.Log4Net.AspNetCore.dll檔案 ;

Nuget引入log4net/ Microsoft.Extensions.Logging.Log4Net.AspNetCore:如下

滑鼠右擊“依賴性”--“管理NuGet程式包”,然後選擇“瀏覽”輸入“LogNet”搜尋,安裝log4net/ Microsoft.Extensions.Logging.Log4Net.AspNetCore如下圖:

4.新增log4net.Config配置檔案,下面貼出配置資訊,大家直接複製log4net.Config檔案內容就可以了:

貼的程式碼

<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <!-- 日誌檔案配置-->
    <root>
        <level value="ALL"/>
        <!--按檔案儲存日誌-->
        <appender-ref ref="DebugAppender"/>
        <appender-ref
ref="InfoAppender"/> <appender-ref ref="ErrorAppender"/> </root> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value=".\\Logs\\Error\\"/> <!--日誌記錄的存在路--> <param name="AppendToFile
" value="true"/> <!--為true就表示日誌會附加到檔案,為false,則會重新建立一個新檔案--> <param name="MaxSizeRollBackups" value="100"/> <!--建立最大檔案數--> <param name="maximumFileSize" value="10MB" /> <!--檔案大小--> <param name="maximumFileSize" value="10MB"/> <!--是否只寫到一個檔案中--> <param name="StaticLogFileName" value="false"/> <!--是否指定檔名--> <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/> <!--建立新檔案的方式,可選為Size(按檔案大小),Date(按日期),Once(每啟動一次建立一個檔案),Composite(按日期及檔案大小),預設為Composite--> <param name="RollingStyle" value="Composite"/> <layout type="log4net.Layout.PatternLayout"> <!--輸出內容佈局--> <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> <!--method會影響效能--> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR"/> <param name="LevelMax" value="ERROR"/> </filter> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value=".\\Logs\\Info\\"/> <param name="AppendToFile" value="true"/> <param name="MaxSizeRollBackups" value="100"/> <param name="maximumFileSize" value="10MB" /> <param name="StaticLogFileName" value="false"/> <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/> <param name="RollingStyle" value="Composite"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="INFO"/> <param name="LevelMax" value="INFO"/> </filter> </appender> <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value=".\\Logs\\Debug\\"/> <param name="AppendToFile" value="true"/> <param name="MaxSizeRollBackups" value="100"/> <param name="maximumFileSize" value="10MB" /> <param name="StaticLogFileName" value="false"/> <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/> <param name="RollingStyle" value="Composite"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG"/> <param name="LevelMax" value="DEBUG"/> </filter> </appender> </log4net>
View Code

注意:生成的時候如果根目錄下沒有log4net.Config,需要log4net.Config右鍵屬性,選擇“複製到輸出目錄”修改為“始終複製”,如下圖:

5.在AssemblyInfo.cs檔案下新增配置程式碼:

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureLogging(logging =>
            {
                logging.AddFilter("System", LogLevel.Warning);
                logging.AddFilter("Microsoft", LogLevel.Warning);
                logging.AddLog4Net();
            })
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });

其中紅色部分是新增的程式碼,

logging.AddLog4Net():新增應用Log4Net日誌:

如果想過濾系統日誌等可以新增如下兩句程式碼:

logging.AddFilter("System", LogLevel.Warning);

logging.AddFilter("Micrisoft", LogLevel.Warning);

6.在需要打日誌的檔案裡引用using log4net,然後新增Ilog變數就可以使用日誌功能,如下圖:

下面是打出的日誌檔案:

至此NET CORE下引用log4net檔案我想你已經都會用了,希望對你有幫助。

最後最後最後,重要的事情說三遍,來著是客,如果您覺得好就推薦或評論下,覺得不好希望能得到您的建議,繼續改善.