如何关闭nlog / .netcore中的Microsoft信息级别日志记录?
我仍然希望我的其他记录器的信息记录
我目前有:
<rules>
<logger name="Microsoft.*" minlevel="Error" writeTo="nxlog_json" />
<logger name="Microsoft.*" minlevel="Error" writeTo="human_text_file" />
<logger name="*" minlevel="Info" writeTo="nxlog_json" />
<logger name="*" minlevel="Info" writeTo="human_text_file" />
</rules>
这不起作用,如果我删除:
<logger name="*" minlevel="Info" writeTo="nxlog_json" />
<logger name="*" minlevel="Info" writeTo="human_text_file" />
它适用于Microsoft日志记录,但随后会删除其他记录器的所有日志记录。
我缺少什么?我假设记录器名称=“”覆盖了Microsoft的第一个订单。,但我不想明确指定其他记录器名称。
答案 0 :(得分:4)
如果应用了当前过滤器,请使用停止其他过滤器处理的final=true
。并写"blackHole"
目标以吞下消息:
<targets>
<target xsi:type="Null" name="blackHole" />
</targets>
<rules>
<logger name="Microsoft.*" minlevel="Info" writeTo="blackHole" final="true" />
<logger name="*" minlevel="Info" writeTo="nxlog_json" />
<logger name="*" minlevel="Info" writeTo="human_text_file" />
</rules>
NLog 4.5允许指定一个空的writeTo =“”
<rules>
<logger name="Microsoft.*" minlevel="Info" writeTo="" final="true" />
<logger name="*" minlevel="Info" writeTo="nxlog_json" />
<logger name="*" minlevel="Info" writeTo="human_text_file" />
</rules>
官方维基:https://github.com/NLog/NLog/wiki/Filtering-log-messages#routing