asp.net-core - 用于 asp.net 核心重复规则的 NLog nlog.config
问题描述
我正在尝试将 NLog 应用于我的 ASP.NET 核心应用程序。我正在遵循 NLog 网站的指南:https ://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2
以下是为nlog.config建议的规则
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Skip non-critical Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" maxLevel="Info" final="true" /> <!-- BlackHole without writeTo -->
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
有两行具有相同的记录器名称模式
记录器名称="*" minlevel="Trace"
但针对不同的目标。一个用于 allfile 目标,另一个用于 ownFile-web 目标
这对我来说没有意义。这对我来说似乎是重复的。任何意见?谢谢!
解决方案
您需要从上到下阅读规则。有3条规则:
- 如果级别是跟踪或向上,则登录到
allfile
. 所以这个文件将包含所有的日志消息(包括那些来自外部的) - 如果级别为最大信息(因此跟踪、调试和信息),并且如果记录器名称以 开头
Microsoft.
,则跳过日志消息(因为没有writeTo=
)并停止处理(注意final=true
) - 如果级别是跟踪或向上,则登录到
ownFile-web
. 但是因为(跟踪、调试和信息)微软。日志消息被跳过(参见前面的规则),这个文件将只包含您自己的日志 + 来自 Microsoft 的警告和错误 - 而不是来自 Microsoft 的跟踪、调试和信息。
推荐阅读
- python - 数据帧长度 PySpark
- centos - CentOS EPEL fail2ban 不处理 tomcat 的 systemd 日志
- image - 图像在组件重新渲染时消失
- java - 生成任意数量的视图
- c# - 泛型类型参数 C# - 如何泛型类返回类型
- python - 如何随着时间的推移将多个复杂的信号发送到同一个时隙
- python - 为机器学习管道设置 Flask 架构
- javascript - AWS Lambda node.js 中 HTTP 请求的基本身份验证
- tensorflow - 是否有特定于“tensorflow.not_equal()”的形状/轴等价物?
- java - 在 JAVA 中将新字段添加到图像的 GPS 目录