欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.net新興日志框架Serilog簡(jiǎn)介

 更新時(shí)間:2022年07月01日 11:33:14   作者:天方  
這篇文章介紹了.net下的新興日志框架Serilog,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

首先安裝Nuget包:

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

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

簡(jiǎn)單的示例:

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

輸出結(jié)果如下:

LoggerConfiguration

這里用了一個(gè)LoggerConfiguration對(duì)象,它主要用于創(chuàng)建和設(shè)置Log對(duì)象,類似于Nlog里面的LogManager類。這里主要用它兩個(gè)方法:

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

ILogger

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

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

大多數(shù)的日志也是這樣5級(jí),只是有的名稱叫的不同(NLog第1級(jí)叫Trace,其它的一致),每一級(jí)別對(duì)應(yīng)一個(gè)寫Log的函數(shù):

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

另外,ILogger對(duì)象還有一個(gè)Dispose方法,用于關(guān)閉日志對(duì)象。

全局Logger對(duì)象

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

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

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

不過(guò)Log類之前,首先必須給它關(guān)聯(lián)一個(gè)ILogger。

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

接收器

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

  • Console        輸出到控制臺(tái)
  • Debug        輸出到VS的Debug窗口
  • File            輸出到文件
  • Rolling File    
  • MongoDB    輸出到MongoDB
  • LiteDB        輸出到文件數(shù)據(jù)庫(kù)LiteDB
  • SQLite         輸出到文件數(shù)據(jù)庫(kù)SQLite
  • SignalR        輸出為SignalR服務(wù)
  • HTTP        輸出到REST服務(wù)

輸出格式配置

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

到此這篇關(guān)于.net日志框架Serilog的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論