天天看点

循序渐进学.Net Core Web Api开发系列【10】:使用日志

本篇介绍日志的使用,包括系统默认的控制台日志和第三方NLog日志管理。

系列目录

循序渐进学.Net Core Web Api开发系列目录

 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi

一、本篇概述

二、使用系统控制台日志

1、使用内置日志

默认只能看到前三条记录:

循序渐进学.Net Core Web Api开发系列【10】:使用日志

主要原因是日志的最低级别默认为Warring,如果要显示其他级别日志,需要修改application.json文件。 

日志级别优先级如下顺序:

Critical > Error > Warning > Information > Debug

调整日志级别为Information 或Debug以后会显示太多无关的日志信息,可以配置默认级别为Warring,而自己项目命名空间的日志级别为Debug。

2、几点说明

1)目前日志已经可以正常工作了,把项目发布到Linux环境下,通过配置Supervisor可以把控制台的内容输出到文件系统,建议在调试环境下采用Debug日志级别,而在生成环境采用Error日志级别。配置Supervisor的内容可以参考:循序渐进学.Net Core Web Api开发系列【7】:项目发布。

 2)如果稍微了解依赖注入(DI)的知识,就可以理解我们在Controoler中使用ILogger是采用标准的构造函数注入的方式,但是问题是用户并没有注册该服务,其实是系统在CreateDefaultBuilder时帮我们注册了日志服务。可以看几段源码的片段:

三、使用NLog

1、通过NuGet获取包:NLog.Web.AspNetCore

2、修改Startup类的Configure方法:

nlog.config配置文件内容如下:

项目发布时修改配置文件,只保留errfile即可。

以上就是全部代码,Controller中的代码无需修改。

3、两个注意点

1)目前我们已经采用NLog来进行日志的记录,此时系统默认的日志仍然是正常工作的,项目发布时建议把系统默认的日志级别改成Error,nlog的输出日志只保留errfile,以免造成服务器磁盘空间浪费。

2)项目发布时nlog.config文件可能不会发布到目标目录,需要修改该文件的文件属性:

循序渐进学.Net Core Web Api开发系列【10】:使用日志

签名区:

如果您觉得这篇博客对您有帮助或启发,请点击右侧【推荐】支持,谢谢!

继续阅读