<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何使用第三方日志記錄提供程序替代.NET Core中的內(nèi)置程序

          共 3074字,需瀏覽 7分鐘

           ·

          2021-05-26 01:18

          背景

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

          調(diào)用 CreateDefaultBuilder,這將添加以下日志記錄提供程序:

          • 控制臺(tái)

          • 調(diào)試

          • 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>(); });}


          實(shí)現(xiàn)思路

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

          • 調(diào)用 ClearProviders 以從生成器中刪除所有 ILoggerProvider 實(shí)例。

          • 添加控制臺(tái)日志記錄提供程序。

          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 errors logger.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開發(fā)實(shí)戰(zhàn)視頻課程 ★★★

          .NET Core實(shí)戰(zhàn)項(xiàng)目之CMS 第一章 入門篇-開篇及總體規(guī)劃

          【.NET Core微服務(wù)實(shí)戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引

          Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)

          .NET Core中的一個(gè)接口多種實(shí)現(xiàn)的依賴注入與動(dòng)態(tài)選擇看這篇就夠了

          10個(gè)小技巧助您寫出高性能的ASP.NET Core代碼

          用abp vNext快速開發(fā)Quartz.NET定時(shí)任務(wù)管理界面

          在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實(shí)現(xiàn)作業(yè)調(diào)度

          現(xiàn)身說法:實(shí)際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化

          關(guān)于C#異步編程你應(yīng)該了解的幾點(diǎn)建議

          C#異步編程看這篇就夠了


          瀏覽 52
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码污污网站 | 极品美女口交赤裸口交赤 | 中国美女操逼网站 | 国产精品视频福利 | 成人片成人片 |