本文转载自微信公众号「UP技术控」,作者 conan5566。转载本文请联系UP技术控公众号。
目前创新互联公司已为近千家的企业提供了网站建设、域名、虚拟空间、网站托管、企业网站设计、定海网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
.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
(); - });
- }
若要替代Host.CreateDefaultBuilder 添加的默认日志记录提供程序集,请调用 ClearProviders 并添加所需的日志记录提供程序。 例如,以下代码:
调用 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中的内置程序
URL分享:http://www.mswzjz.com/qtweb/news2/188952.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联