您现在的位置是:亿华云 > IT科技类资讯
如何使用第三方日志记录提供程序替代.NET Core中的内置程序
亿华云2025-10-04 00:47:17【IT科技类资讯】8人已围观
简介本文转载自微信公众号「UP技术控」,作者 conan5566。转载本文请联系UP技术控公众号。.NET Core 支持适用于各种内置和第三方日志记录提供程序的日志记录 API。 先来看下如何将日志记录
本文转载自微信公众号「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<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为例
修改 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(); } 云服务器提供商很赞哦!(939)
相关文章
- tk域名是什么域名?新手对tk域名有什么看法?
- 30 个数据科学工作中必备的 Python 包
- 从零开始搭建一个属于你自己的组件库!
- 程序员积累的编程知识十年后有多少变得没用?
- 什么是im域名?新手需要了解im域名哪些?
- Web3:区块链技术将如何改进 Web3 中的 DevOps ?
- 难住了,微服务之间的几种调用方式哪一个更胜一筹?
- 29个合格前端工程师需要掌握的JavaScript 技能
- 其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
- 在阿里内部是如何 Debug 线上问题的?