.net core配置使用Nlog日志

一、.net core配置使用Nlog日志

1. nlog介绍:NLog((http://www.nlog-project.org)是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码。NLog完全实现了我们上面的期望目标,并且还远远不止这些……

  NLog允许我们自定义从跟踪消息的来源(source)到记录跟踪信息的目标(target)规则(rules)。记录跟踪信息的目标(target)可以为如下几种形式:

  1. 文件
  2. 文本控制台
  3. Email
  4. 数据库
  5. 网络中的其它计算机(通过TCP或UDP)
  6. 基于MSMQ的消息队列

2. core中使用nlog日志记录:添加引用nlog.config和Nlog.Web.AspNetCore。

  

 

 

 3. 修改配置program

  

复制代码
 1  public class Program
 2     {
 3         public static void Main(string[] args)
 4         {
 5             CreateHostBuilder(args).Build().Run();
 6 
 7             var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
 8             try
 9             {
10                 logger.Debug("init main");
11                 CreateHostBuilder(args).Build().Run();
12             }
13             catch (Exception exception)
14             {
15                 //NLog: catch setup errors
16                 logger.Error(exception, "Stopped program because of exception");
17                 throw;
18             }
19             finally
20             {
21                 // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
22                 NLog.LogManager.Shutdown();
23             }
24         }
25 
26         public static IHostBuilder CreateHostBuilder(string[] args) =>
27             Host.CreateDefaultBuilder(args)
28                 .ConfigureWebHostDefaults(webBuilder =>
29                 {
30                     webBuilder.UseStartup<Startup>();
31                 }).ConfigureLogging(logging =>
32                 {
33                     logging.ClearProviders(); // 这个方法会清空所有控制台的输出
34                     logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
35                 })
36                 .UseNLog(); // 使用NLog;
37     }
复制代码

4. 修改nlog.config文件中如下:

复制代码
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
 3       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4       xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
 5   <targets>
 6     <target xsi:type="File" name="LogFile" fileName="${basedir}/logs/${shortdate}.log"
 7             layout="${longdate} ${uppercase:${level}} ${message}" />
 8   </targets>
 9 
10   <rules>
11     <logger name="*" minlevel="Debug" writeTo="LogFile" />
12   </rules>
13 </nlog>
复制代码

5. 使用日志:

注入: 
private readonly ILogger<WeatherForecastController> _logger;
使用:
_logger.LogError("报错了");

 

谢谢学习,转发请标明出处!https://www.cnblogs.com/wangjinya/p/12935564.html

posted @   锦大大的博客呀!  阅读(1346)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2019-05-22 Json序列化和反序列化的方式
2019-05-22 Log4Net日志处理
2019-05-22 MVC项目中异常处理
点击右上角即可分享
微信分享提示