日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.Net Core3.0 日志 logging

發布時間:2023/12/4 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .Net Core3.0 日志 logging 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多年的經驗,日志記錄是軟件開發的重要組成部分。沒有日志記錄機制的系統不是完善的系統。在開發階段可以通過debug附件進程進行交互調試,可以檢測到一些問題,但是在上線之后,日志的記錄起到至關重要的作用。它可使我們在系統出現問題之后,排查錯誤提供依據。

.NET Core3.0內置多種日志記錄程序,并且有第三方提供的日志記錄程序框架如:log4net,NLog,Serilog,elmah.io等。后面會介紹前三種日志框架如何與.NETcore3.0結合起來進行使用。

內置日志記錄提供程序

ASP.NET?Core 提供以下提供程序:

  • 控制臺-可以在控制臺查看日志輸出

  • 調試-vs工具 -》開始調試-》輸出窗口進行查看日志輸出

  • EventSource-可使用PerfView 實用工具收集和查看日志

  • EventLog-》僅在windows系統下可以使用事件查看器查看日志

  • TraceSource

  • AzureAppServicesFile

  • AzureAppServicesBlob

  • ApplicationInsights

創建使用日志

通用主機的應用程序和非主機應用程序使用的方式也是不同的。因為通用主機內部封裝了 依賴注入、logging、配置、IHostedService的實現;并且默認配置了控制臺,調試,EventSource以及EventLog(僅當在windows上運行時)提供程序。源碼如下

  • 通用主機

添加提供程序

可自行選擇提供程序來替換默認提供程序。在CreateHostBuilder時候 調用ClearProviders(),然后添加所需的提供程序。我們創建一個api項目為例

public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureLogging(logging => { logging.ClearProviders();//去掉默認添加的日志提供程序 logging.AddConsole(); logging.AddDebug(); logging.AddEventSourceLogger(); logging.AddEventLog(); //logging.AddTraceSource(); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); })

在 Web 應用或托管服務中,由依賴關系注入 (DI) 獲取 ILogger。

private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; //可以顯示指定類別名稱ILoggerFactory logger //logger.CreateLogger("WebApi.Controllers.WeatherForecastController"); }

?

  • 非主機控制臺

添加提供程序

在創建 LoggerFactory 時調用提供程序的 Add{provider name} 擴展方法:

在非主機控制臺應用中,使用 LoggerFactory 來創建 ILogger。

第三方日志框架

log4net,NLog和Serilog這3種日志記錄框架幾乎在.NET空間中占主導地位,不需要太多介紹。看看最近6周的下載排名就知道了。如圖

log4net 在NET Core 3.0使用

引用Log4net到項目中,安裝NuGet包

NLog 在NET Core 3.0使用

引用NLog到項目中,安裝NuGet包

NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();

CreateHostBuilder方法添加

.UseNLog() //NLog: Setup NLog for Dependency injection

使用 ?

Serilog 在NET Core 3.0使用

引用Serilog到項目中,安裝NuGet包

Main方法添加

小結:本文主要講解NET Core3.0內置的日志提供程序和與第三方日志框架(Log4net,Nlog,Serilog)的使用。

總結

以上是生活随笔為你收集整理的.Net Core3.0 日志 logging的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。