C# 使用 Serilog 紀錄 Log (不用設定檔)

Serilog 是一個記錄日誌的第三方套件,支援非常多種格式,詳細內容可以查看 Serilog 官方網站,如果是使用 ASP.Net Core 可以查看這篇: 最詳細 ASP.NET Core 使用 Serilog 套件寫 log 教學

Serilog 教學

先使用 NuGet 安裝 Serilog 套件,但是只安裝 Serilog 還無法正常使用,還要依照要輸出的目標來安裝額外的套件。

常用輸出套件:
輸出到指令視窗: Serilog.Sinks.Console
輸出到檔案: Serilog.Sinks.File
輸出到 Debug 視窗: Serilog.Sinks.Debug

Serilog 還支援輸出到 SQLite, SQL Server, Telegram 等等,具體的支援項目清單可以查看 官方 Github

筆者這裡就示範在指令視窗顯示和寫入到檔案,安裝好下列三個套件之後就開始寫程式: 在程式一開始先初始化 Serilog
  
Log.Logger = new LoggerConfiguration()
	.MinimumLevel.Verbose() // 設定最低顯示層級   預設: Information
    .WriteTo.Console() // 輸出到 指令視窗
    .WriteTo.File("log-.log",
        rollingInterval: RollingInterval.Day, // 每天一個檔案
        outputTemplate: "{Timestamp:HH:mm:ss} [{Level:u5}] {Message:lj}{NewLine}{Exception}"
    ) // 輸出到檔案 檔名範例: log-20211005.log
    .CreateLogger();


在程式結束時呼叫:
  
  
Log.CloseAndFlush();


註: 如果是 Windows Forms 專案,則把開始和結束的程式碼寫在 Program.cs 內即可

然後就是寫Log的部分,輸出記錄總共有6個等級,由小到大分別是:
Verbose, Debug, Information, Warning, Error, Fatal

預設顯示只有 Information,可透過 MinimumLevel 修改(上面的程式碼已經改為全部層級都會輸出)
outputTemplate 的部分是修改輸出到檔案的內容格式 目前輸出到檔案的格式長這樣: (文章最後面有完整程式碼)
預設輸出格式: (把 outputTemplate 那行拿掉)

完整程式碼

留言