日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

.net新興日志框架Serilog簡介_實用技巧

作者:天方 ? 更新時間: 2022-08-24 編程語言

Serilog是.net下的新興的日志框架,本文這里簡單的介紹一下它的用法。

首先安裝Nuget包:

Install-Package Serilog
Install-Package Serilog.Sinks.Console

其中包Serilog是Log核心庫,Serilog.Sinks.Console是Log的控制臺輸出庫,這個也是日志框架的一貫策略,一個核心庫加多個輸出庫組合使用,這樣可以保持良好的擴展性。

簡單的示例:

using (var log = new LoggerConfiguration()
                .WriteTo.Console()
                .CreateLogger())
{
    log.Information("Hello, Serilog!");
    log.Warning("Goodbye, Serilog.");
}

輸出結果如下:

LoggerConfiguration

這里用了一個LoggerConfiguration對象,它主要用于創建和設置Log對象,類似于Nlog里面的LogManager類。這里主要用它兩個方法:

  • WriteTo:WriteTo屬性用來設置日志的輸出,Serilog將其稱為Sink(水槽),還是比較形象的。
  • CreateLogger:用于創建一個ILogger類型的Logger對象.

ILogger

ILogger對象用于記錄日志,和其他日志框架差不多。Serilog日志級別分為如下5級

  • Verbose,
  • Debug,
  • Information,
  • Warning,
  • Error,
  • Fatal,

大多數的日志也是這樣5級,只是有的名稱叫的不同(NLog第1級叫Trace,其它的一致),每一級別對應一個寫Log的函數:

log.Verbose("verbose");
log.Information("info");
log.Debug("debug");
log.Warning("warning");
log.Error("err");
log.Fatal("fatal");

另外,ILogger對象還有一個Dispose方法,用于關閉日志對象。

全局Logger對象

在實際的使用過程中,往往并不是每次使用都去創建一個ILogger,一種方式是通過依賴注入的方式創建一個全局的Logger。不過這種方式需要引入DI框架。在小程序中使用不算方便。

另一種方式是直接使用靜態的Log類,它也攜帶了寫入日志的方法,用起來非常方便。

Log.Warning("warning");
Log.Error("err");
Log.Fatal("fatal");

不過Log類之前,首先必須給它關聯一個ILogger。

Log.Logger = new LoggerConfiguration()
            .WriteTo.Console()
            .CreateLogger();

接收器

Serilog的輸出對象稱之為Sink(水槽),github上提供了大量的第三方的可用sinks,這里簡單的列舉幾個常用的:

  • Console????????輸出到控制臺
  • Debug????????輸出到VS的Debug窗口
  • File????????????輸出到文件
  • Rolling File????
  • MongoDB????輸出到MongoDB
  • LiteDB????????輸出到文件數據庫LiteDB
  • SQLite?????????輸出到文件數據庫SQLite
  • SignalR????????輸出為SignalR服務
  • HTTP????????輸出到REST服務

輸出格式配置

Serilog的日志輸出通過LoggerConfiguration類配置,詳細的配置參數可以參看官方文檔:Configuration Basics。在日常使用中,感覺更多的是直接通過LoggerConfiguration在代碼中配置。

原文鏈接:https://www.cnblogs.com/TianFang/p/9416238.html

欄目分類
最近更新