Serilog logging 快速設定
過往NLog有很多使用者,筆者也是使用NLog,但它需要額外用XML來做設定,而不是合併到appsetting.json。而Serilog的設定就較為簡易,而且複雜的設定也可以移到appsetting.json,以下示範Serilog的使用。
第一種是直接在Program.cs上設定:
Log.Logger = new LoggerConfiguration()
.WriteTo.File("logs/log.log",
rollingInterval: RollingInterval.Day,
rollOnFileSizeLimit: true)
.CreateLogger();
而rollingInterval: RollingInterval.Day
這個設定,可以讓log檔以天為單位,讓檔案易於管理。
另一種就是用設定檔:
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.CreateLogger();
上段程式碼是直接透過設定檔讀取設定,下列則是放在appsetting.json裡的設定:
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"path": "logs/log.txt",
"rollingInterval": "Day",
"rollOnFileSizeLimit": true
}
}
]
}
參考資料