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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

如何使用第三方日志记录提供程序替代.NET Core中的内置程序

發布時間:2023/12/4 asp.net 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用第三方日志记录提供程序替代.NET Core中的内置程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

.NET Core 支持適用于各種內置和第三方日志記錄提供程序的日志記錄 API。?先來看下如何將日志記錄 API 與內置提供程序一起使用。

調用 CreateDefaultBuilder,這將添加以下日志記錄提供程序:

  • 控制臺

  • 調試

  • EventSource

  • EventLog:僅限 Windows

  • public class Program {public static void Main(string[] args){CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}); }

實現思路

若要替代Host.CreateDefaultBuilder 添加的默認日志記錄提供程序集,請調用 ClearProviders 并添加所需的日志記錄提供程序。?例如,以下代碼:

  • 調用 ClearProviders 以從生成器中刪除所有 ILoggerProvider 實例。

  • 添加控制臺日志記錄提供程序。

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureLogging(logging =>{logging.ClearProviders();logging.AddConsole();}).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();});

Nlog案例

使用第三方替代,以Nlog為例

修改?program.cs

using System; using NLog.Web; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Hosting;public static void Main(string[] args) {var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();try{logger.Debug("init main");CreateHostBuilder(args).Build().Run();}catch (Exception exception){//NLog: catch setup errorslogger.Error(exception, "Stopped program because of exception");throw;}finally{// Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)NLog.LogManager.Shutdown();} }public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}).ConfigureLogging(logging =>{logging.ClearProviders();logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);}).UseNLog(); // NLog: Setup NLog for Dependency injection

寫日志

using Microsoft.Extensions.Logging;public class HomeController : Controller {private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;_logger.LogDebug(1, "NLog injected into HomeController");}public IActionResult Index(){_logger.LogInformation("Hello, this is the index!");return View();}

總結

以上是生活随笔為你收集整理的如何使用第三方日志记录提供程序替代.NET Core中的内置程序的全部內容,希望文章能夠幫你解決所遇到的問題。

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