前面:我理想的教程,既要有一步一步就成的思路,也要有进一步思考,比如某些常用的参数是什么意思?通常在项目中是怎么个使用法?我知道写成人人满意的小白教程有点难,这需要时间,本身我写这些也是给自己的一种学习和复习。我知道几个月后,或几年后让我离开项目框架,徒手再用时,不百度一下我是不能立刻使用上的。我不希望搜索太多,一篇就够是我的目标。文章有不足,我会在想到点的时候补上,不会写完后就不管不更新了。
先放上官方教程:
https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-5github.com1.安装。一般来讲,我们日志功能是写在Web项目中的Util层(工具层),这里面会放各种帮助类,当然也会有专门记录日志的帮助类,供全局上下调用。NLog/NLog1.安装。一般来讲,我们日志功能是写在Web项目中的Util层(工具层),这里面会放各种帮助类,当然也会有专门记录日志的帮助类,供全局上下调用。
2.建个帮助类。用法网上都有,套一层日志的方法,比如简单,基本上如图所示:
3.注册日志服务。在Web层的代码入口处,即Program.cs中添加代码.UseNLog();
4.在web层根目录下新建一个NLog.config配置文件,并且要输出到目录。
5.使用
6.对nlog.config文件的说明,详细的请看官方说明文档地址:
NLog/NLoggithub.com我只对重点的配置项写一点说明:
autoReload="true"
在配置文件头部的这个属性,如果有True,在网站跑的过程中,可以随时变更nlog.config文件,随时生效。
<targets async="true">
启用异步模式进行输出
throwExceptions="true"
这个前期对nlog.config文件如果有写法错误,或是项目中对日志模块有什么异常错误的话,让他主动抛出来,这个对前期集成NLog模块或写配置文件时有用。
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
启用这个extensions扩展,你就可以在下面的输出布局(layout)中使用http://asp.net专门的变量标签。如 ${aspnet-mvc-action} ${aspnet-request-url} 下面是全部该类的专用标签:
来一个输出示例:url: ${aspnet-request-url}|action: ${aspnet-mvc-action}
全部参数配置:
Config | NLognlog-project.org以下对常见的标注一下:
renderers | info |
---|---|
${logger} | 日志名称 GetLogger 时传的名称 |
${longdate} | yyyy-MM-dd HH:mm:ss.ffff |
${level} | 日志等级 ERROR, DEBUG |
${message} | 日志消息内容 |
${newline} | 换行符 |
${shortdate} | yyyy-MM-dd. |
${time} | HH:mm:ss.mmm. |
${basedir} | 网站等项目的根目录 |
... | 更多看文档 |
rules规则反正从上往下去适配,name值就是 GetLogger 时传的名称,可以包括通配符 *和?,以通过通配符匹配来匹配记录器名称。合适就输出对应的 target。如果遇到 final="ture" 那就会停止向下走。 writeTo 多种输出反正可以用 逗号 隔开
关于 Rendering Options
比如 ${exception:format=tostring} 对于冒号后面的更多options参数内容,可以看每一个Render的具体使用,比如 exception 的具体可选参数可以在这里查看:
https://github.com/NLog/NLog/wiki/Exception-Layout-Renderer
教程结束,如有想进一步了解的,可以留言,我随时更新。