我正在使用.Net Core 2.0构建API。
我正在设置NLog进行日志记录,但是有些“谜团”我无法弄清。
我已遵循this的配置,但我不明白两点:
Nlog如何区分nlog-all
与nlog-own
。我的意思是,两个文件的规则都相同:
<logger name="*" minlevel="Trace" writeTo="allfile" />
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
nlog-all
?如何控制它?appsettings.json
文件中配置所有内容,那么配置nlog.config
有什么意义呢?答案 0 :(得分:1)
神奇的事情发生在您很好地排除在示例之外的记录规则中:
<!-- rules to map from logger name to target -->
<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>
从上到下评估日志记录规则:
顶部的“ allFile”规则将匹配所有记录器(名称=“ *”)
中间的BlackHole规则将匹配所有Microsoft记录器,并且由于final =“ true”,它将停止进一步的匹配。
最后一个“ ownFile”将从所有不以Microsoft开始的记录器中接收所有信息。
另请参阅https://github.com/nlog/NLog/wiki/Configuration-file#rules