得益於.net core的模塊化設計,我們可以很輕鬆的加入我們喜歡的功能和組件,今天我們就簡單的說一下他的Logger組件。.net core 自帶有日誌組件,功能也比較完善,通過依賴注入的方式使用也很方便,應對一般的用途是足夠的。但很多時候我們會選擇使用第三方更加完善的日誌組件,比較常用的有Nlog和Serilog,下面我們以Serilog爲例簡單的介紹一下如何在.net core中配置和使用第三方日誌組件。
1、通過nuget下載serilog和對應的skins,skins有很多種,其中常用的有Serilog.Sinks.File/Serilog.Sinks.Console/Serilog.Sinks.Debug,它表示將日誌的內容輸出到不同的媒介中,對應的就是上面的文件、控制檯和debug窗口。爲了圖省事,我們只需要添加下圖的這個包就行了,可以看到它的依賴種已經包含了我們需要的skins
2、配置Serilog。其實很簡單只需要在Program類種的main方法中做如下修改即可(注意:不是在startup類中):
public static void Main(string[] args)
{
//第三方log工具serilog的相關配置
Log.Logger = new LoggerConfiguration()
//配置日誌最小輸出的級別爲:debug
.MinimumLevel.Debug()
//如果是Microsoft的日誌,最小記錄等級爲info
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
//輸出到控制檯
.WriteTo.Console()
//將日誌保存到文件中(兩個參數分別是日誌的路徑和生成日誌文件的頻次,當前是一天一個文件)
.WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day)
.CreateLogger();
CreateWebHostBuilder(args)
//使用serilog
.UseSerilog()
.Build()
.Run();
}
好了,到此我們就完成了基本的配置。我們啓動一下項目會發現控制檯的日誌發生了變化:
左邊是原始的,右邊的是我們配置了serilog後的樣子,並且我們的項目中也多出來一個log文件夾,裏面存放了我們產生的日誌文件,文件名爲 log+八位日期。
3、使用log。一般我們通過構造器注入的方式來使用logger:
注入完後我們就可以愉快的添加日誌啦:
4、拓展:日誌的等級和LogLevel 枚舉