中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

陽江網(wǎng)站制作公司網(wǎng)時(shí)代教育培訓(xùn)機(jī)構(gòu)官網(wǎng)

陽江網(wǎng)站制作公司,網(wǎng)時(shí)代教育培訓(xùn)機(jī)構(gòu)官網(wǎng),網(wǎng)架加工安裝一體的公司,網(wǎng)站建設(shè)的公司怎么做Serilog 是一個(gè)功能強(qiáng)大的日志記錄庫,專為 .NET 平臺(tái)設(shè)計(jì)。它提供了豐富的 API 和可插拔的輸出器及格式化器,使得開發(fā)者能夠輕松定制和擴(kuò)展日志記錄功能。在本文中,我們將探索 Serilog 的基礎(chǔ)知識(shí)、API 使用、配置和一些常見的示例。 1. 日志…

Serilog 是一個(gè)功能強(qiáng)大的日志記錄庫,專為 .NET 平臺(tái)設(shè)計(jì)。它提供了豐富的 API 和可插拔的輸出器及格式化器,使得開發(fā)者能夠輕松定制和擴(kuò)展日志記錄功能。在本文中,我們將探索 Serilog 的基礎(chǔ)知識(shí)、API 使用、配置和一些常見的示例。


1. 日志級(jí)別

Serilog 支持多個(gè)日志級(jí)別,按照嚴(yán)重性從高到低排列如下:

  • Fatal: 程序無法繼續(xù)運(yùn)行,必須立即解決的問題。
  • Error: 發(fā)生了錯(cuò)誤,需要處理。
  • Warning: 警告,需關(guān)注但不必立即處理。
  • Information: 提供有用的消息,通常用于調(diào)試。
  • Debug: 調(diào)試信息,幫助開發(fā)者調(diào)試程序。
  • Verbose: 詳細(xì)的日志信息,通常用于復(fù)雜問題的調(diào)試。

2. 日志輸出

Serilog 支持多種日志輸出方式,包括:

  • Console: 輸出到控制臺(tái)。
  • File: 輸出到文件。
  • Seq: 輸出到日志收集器 Seq。
  • Elasticsearch: 輸出到 Elasticsearch。

此外,Serilog 也支持自定義日志輸出器。


3. 日志格式

Serilog 提供了多種格式化日志消息的方式:

  • 簡單文本格式:常見的日志輸出格式。
  • JSON 格式:適合結(jié)構(gòu)化日志。
  • Message Templates 格式:一種靈活的格式,允許在日志消息中插入占位符。

4. 安裝

Serilog 可以通過 NuGet 安裝:

Install-Package Serilog

5. 基礎(chǔ)使用示例

在應(yīng)用程序中使用 Serilog 十分簡單。以下是一個(gè)簡單的控制臺(tái)日志輸出示例:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console().CreateLogger();Log.Information("Hello, Serilog!");Log.CloseAndFlush();}
}

此代碼將在控制臺(tái)輸出 Hello, Serilog!。


6. 日志級(jí)別示例

Serilog 允許設(shè)置不同的日志級(jí)別。以下示例演示了如何記錄各種級(jí)別的日志消息:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Verbose().WriteTo.Console().CreateLogger();Log.Verbose("This is a verbose log message.");Log.Debug("This is a debug log message.");Log.Information("This is an informational log message.");Log.Warning("This is a warning log message.");Log.Error("This is an error log message.");Log.Fatal("This is a fatal log message.");Log.CloseAndFlush();}
}

7. 消息模板

Serilog 支持消息模板,允許開發(fā)者在日志中使用占位符。以下示例展示了如何使用消息模板:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}").CreateLogger();Log.Information("Hello, {Name}!", "Serilog");Log.CloseAndFlush();}
}

上述代碼將在控制臺(tái)輸出如下格式的日志:

2023-09-15 22:23:54.576 +08:00 [INF] Hello, Serilog!

8. 日志屬性

Serilog 支持在日志中添加附加屬性。以下示例展示了如何記錄額外的信息:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console().CreateLogger();Log.Information("Processed {@Count} records in {Time} ms.", new { Count = 10, Time = 123 });Log.CloseAndFlush();}
}

此代碼會(huì)輸出:

Processed { Count: 10, Time: 123 } records in 0 ms.

9. 文件輸出配置

Serilog 允許將日志輸出到文件,并通過 rollingInterval 設(shè)置日志滾動(dòng)方式。以下示例展示了如何按天滾動(dòng)文件并設(shè)置輸出模板:

Log.Logger = new LoggerConfiguration().WriteTo.File($"logs\\log-.txt", rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}").CreateLogger();Log.Information("This is a log message!");Log.CloseAndFlush();

這將創(chuàng)建類似于 log-20230914.txt 的文件,每天一個(gè)新文件。


10. 結(jié)構(gòu)化日志記錄

Serilog 支持結(jié)構(gòu)化日志記錄,這意味著可以將復(fù)雜的數(shù)據(jù)(如對(duì)象、集合等)以結(jié)構(gòu)化的方式存儲(chǔ)和輸出。例如:

using Serilog;class Program
{static void Main(){var weather = new WeatherForecast{Date = DateTime.Now,TemperatureC = 22,Summary = "Sunny"};Log.Information("Weather forecast: {@Weather}", weather);Log.CloseAndFlush();}
}public class WeatherForecast
{public DateTime Date { get; set; }public int TemperatureC { get; set; }public string Summary { get; set; }
}

此代碼將輸出類似于:

Weather forecast: {"Date":"2023-09-15T22:39:53.8634787+08:00","TemperatureC":22,"Summary":"Sunny","$type":"WeatherForecast"}

11. 日志過濾

Serilog 允許使用過濾器控制輸出。以下示例僅輸出錯(cuò)誤級(jí)別以上的日志:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console().Filter.ByIncludingOnly(logEvent => logEvent.Level >= LogEventLevel.Error).CreateLogger();Log.Verbose("This is a verbose log message.");Log.Error("This is an error log message.");Log.CloseAndFlush();}
}

此代碼只會(huì)在控制臺(tái)輸出錯(cuò)誤和更高嚴(yán)重級(jí)別的日志。


12. 擴(kuò)展與自定義輸出器

Serilog 支持自定義輸出器,允許開發(fā)者將日志輸出到不同的目的地(例如 Elasticsearch、數(shù)據(jù)庫等)。以下是一個(gè)創(chuàng)建自定義控制臺(tái)輸出器的例子:

using Serilog;
using Serilog.Configuration;
using Serilog.Events;public static class CustomConsoleSinkExtensions
{public static LoggerConfiguration CustomConsole(this LoggerSinkConfiguration sinkConfiguration,ITextFormatter formatter = null,LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum){return sinkConfiguration.Sink(new CustomConsoleSink(formatter),restrictedToMinimumLevel);}
}public class CustomConsoleSink : ILogEventSink
{private readonly ITextFormatter _formatter;public CustomConsoleSink(ITextFormatter formatter){_formatter = formatter ?? throw new ArgumentNullException(nameof(formatter));}public void Emit(LogEvent logEvent){var message = new StringWriter();_formatter.Format(logEvent, message);Console.WriteLine(message.ToString());}
}

然后可以通過以下方式將其添加到日志配置中:

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

13. 總結(jié)

Serilog 是一個(gè)功能強(qiáng)大的 .NET 日志庫,支持豐富的日志記錄方式、輸出方式和格式化選項(xiàng)。它的可擴(kuò)展性和靈活性使得開發(fā)者能夠根據(jù)應(yīng)用程序的需求定制日志記錄方式。從簡單的控制臺(tái)日志到復(fù)雜的結(jié)構(gòu)化日志和自定義輸出器,Serilog 都能輕松應(yīng)對(duì)。

希望本文對(duì)您理解 Serilog 和高效使用該庫有所幫助!

http://www.risenshineclean.com/news/37200.html

相關(guān)文章:

  • 怎么做刷鉆網(wǎng)站北京網(wǎng)站排名seo
  • 高端網(wǎng)站建站公司怎么開展網(wǎng)絡(luò)營銷推廣
  • 域名注冊(cè)平臺(tái)的網(wǎng)站怎么做頭條搜索
  • 重慶快建網(wǎng)站網(wǎng)絡(luò)推廣技術(shù)外包
  • 網(wǎng)站算信息化建設(shè)電腦版百度網(wǎng)盤
  • 成都網(wǎng)站建設(shè)公司常熟網(wǎng)站建設(shè)
  • 做鞋的垂直網(wǎng)站百度客服24小時(shí)電話人工服務(wù)
  • b2c購物網(wǎng)站開發(fā)西安seo網(wǎng)站關(guān)鍵詞優(yōu)化
  • 做旅行網(wǎng)站的意義百度官網(wǎng)app下載安裝
  • 哪些網(wǎng)站可以做邀請(qǐng)函精準(zhǔn)大數(shù)據(jù)獲客系統(tǒng)
  • 免費(fèi)行情的軟件入口下載路由器優(yōu)化大師
  • 宣城市建設(shè)銀行網(wǎng)站建站流程
  • 外貿(mào)網(wǎng)站建設(shè)步驟網(wǎng)站設(shè)計(jì)公司多少錢
  • 青島中小企業(yè)網(wǎng)站制作公司網(wǎng)站建設(shè)費(fèi)用多少
  • 百度制作的wordpress工具欄seo在線工具
  • 個(gè)人做網(wǎng)站的流程淘寶推廣
  • 找人做公司網(wǎng)站百度商城
  • 網(wǎng)站建設(shè)項(xiàng)目采購公告天津seo優(yōu)化公司
  • 怎么做接口網(wǎng)站企業(yè)推廣方法
  • 在局網(wǎng)站 作風(fēng)建設(shè)免費(fèi)頂級(jí)域名注冊(cè)網(wǎng)站
  • 高端網(wǎng)站建設(shè)公司興田德潤可以不上海網(wǎng)絡(luò)推廣排名公司
  • wordpress登陸頁面保護(hù)插件seo點(diǎn)擊工具
  • 建筑電工證查詢網(wǎng)站企業(yè)seo案例
  • 網(wǎng)站名和域名的區(qū)別seo推廣多少錢
  • 如何創(chuàng)建自己網(wǎng)站電商項(xiàng)目策劃書
  • 做阿里巴巴網(wǎng)站圖片大全如何做公司網(wǎng)站推廣
  • 做曖視頻網(wǎng)站大全什么平臺(tái)可以做引流推廣
  • 網(wǎng)站推廣的優(yōu)勢有哪些seo課程培訓(xùn)視頻
  • 怎么做網(wǎng)站前臺(tái)站長之家怎么找網(wǎng)址
  • 免費(fèi)網(wǎng)站建設(shè)塔山雙喜泉州全網(wǎng)營銷推廣