新聞中心
本文轉(zhuǎn)載自微信公眾號「UP技術(shù)控」,作者 conan5566。轉(zhuǎn)載本文請聯(lián)系UP技術(shù)控公眾號。

目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、定海網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
.NET Core 支持適用于各種內(nèi)置和第三方日志記錄提供程序的日志記錄 API。 先來看下如何將日志記錄 API 與內(nèi)置提供程序一起使用。
調(diào)用 CreateDefaultBuilder,這將添加以下日志記錄提供程序:
控制臺
調(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
(); - });
- }
若要替代Host.CreateDefaultBuilder 添加的默認(rèn)日志記錄提供程序集,請調(diào)用 ClearProviders 并添加所需的日志記錄提供程序。 例如,以下代碼:
調(diào)用 ClearProviders 以從生成器中刪除所有 ILoggerProvider 實例。
添加控制臺日志記錄提供程序。
- public static IHostBuilder CreateHostBuilder(string[] args) =>
- Host.CreateDefaultBuilder(args)
- .ConfigureLogging(logging =>
- {
- logging.ClearProviders();
- logging.AddConsole();
- })
- .ConfigureWebHostDefaults(webBuilder =>
- {
- webBuilder.UseStartup
(); - });
使用第三方替代,以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
(); - })
- .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
_logger; - public HomeController(ILogger
logger) - {
- _logger = logger;
- _logger.LogDebug(1, "NLog injected into HomeController");
- }
- public IActionResult Index()
- {
- _logger.LogInformation("Hello, this is the index!");
- return View();
- }
新聞名稱:如何使用第三方日志記錄提供程序替代.NETCore中的內(nèi)置程序
文章鏈接:http://www.dlmjj.cn/article/dhcsoje.html


咨詢
建站咨詢
