栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件

  应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用。

  ASP.NET Core提供了内置的日志,但没弄明白这么把它输出到文件, 只能在VS的输出中查看, 谁知道怎么弄告诉我一下。(ASP.NET Core 系列目录) 本例 GitHub

一、内置日志的使用

  上一篇:如何在后台运行一个任务  中使用到了内置的日志,直接在构造中注入一下,然后直接使用即可, 非常方便

        public TokenRefreshService(ILogger logger)
        {
            _logger = logger;
        }        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            _logger.LogInformation("Service starting");           //************
        }

然后在【输出】窗口中就可以看到输出的日志了:

想把它输出到txt中, 没找到相应的方法,试试常见的Nlog吧

二、使用Nlog将日志输出到文件A.安装Nlog

在NuGet中搜索并安装 NLog.Web.AspNetCore , 当前版本是4.5.4

 B.添加配置文件

新建一个文件nlog.config, 并右键点击其属性,将其“复制到输出目录”设置为“始终复制”。文件内容如下





  
  
    
    

    
    
  

  
  
    
    

    
    
    
    
  

C.修改Program.cs文件

 在 .UseStartup() 后添加一句 .UseNLog() 

三、注意事项

按照第二节的描述,NLog已经可以正常使用了,有些细节做一下简要说明:

1. 文件nlog.config的这个名字应该是默认读取的文件名,如果用了别的名字,可以在Program.cs文件中通过 ConfigureNLog 方法设置,见下面代码示例。

2. 现在如第一节内置的例子中一样, VS的输出框仍然在输入日志,也就是二者都在生效状态,想只用Nlog,可以调用 logging.ClearProviders(); 

代码示例:

 1     public class Program 2     { 3         public static void Main(string[] args) 4         { 5             NLog.Web.NLogBuilder.ConfigureNLog("nlog1.config");  //假如没有用默认的名字,多写了一个1 6             CreateWebHostBuilder(args).Build().Run(); 7         } 8  9         public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>10             WebHost.CreateDefaultBuilder(args)11                 .UseStartup()12                 .ConfigureLogging(logging =>13                 {14                     logging.ClearProviders(); //移除已经注册的其他日志处理程序15                     logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); //设置最小的日志级别16                 })17                 .UseNLog();  
18     }

 

四、NLog配置简要说明

    “简要”的说一下NLog的配置:

1.上文提到了一个日志级别,这个级别大概分为6个,由低到高如下:

1 logger.LogTrace();2 logger.LogDebug();3 logger.LogInformation();4 logger.LogWarning();5 logger.LogError();6 logger.LogCritical();

2. 通过上面的例子,看输出的日志文件有3个, 这是在nlog.config中配置的, 通过文件名可以找到对应的配置。

  •   internal-nlog 记录了NLog的启动及加载config的信息。

  •   nlog-all 记录了所有日志

  •  nlog-own 记录了我们自定义的日志

这是为什么呢?config中有两个关键标签

  •   用于配置输出相关内容,比如 type 属性可选项为File、Mail、Console等,用于设置输出目标,layout属性用于设置输出信息的组成元素及格式。

  • : 这里有个坑,一看这个标签,简单理解成了“规则”,而恰好例子中的两个正好对应了上面的两个,writeTo属性指定了对应的。可仔细一看,两个的配置差不多,为什么下面的一个就只输出了我们自定义的log呢?看帮助才知道这是一个“路由表”,日志是从上到下匹配的。  一句话的 final="true" 过滤掉了"Microsoft.*"的日志。

原文出处

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/230774.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号