nlog - NLog 禁用特定记录器 - 真实
问题描述
NLog 4.6.6
我已经尝试了一切来禁用特定的记录器,但无法让它工作。我想知道这是否是 NLog 中的错误。基于文档:
还有一层,关。由于它是最高值并且不用于条目,因此在用作最低日志级别时会禁用日志记录。
和:
如果一个规则被标记为最终并包含任何级别声明属性,最终属性仅适用于指定级别。
因此,如果我执行互联网推荐的路线(即使是这个 SO 答案),它仍然会被记录。
<logger name="Example.*" minlevel="Off" final="true" />
<logger name="*" minlevel="Trace" writeTo="file" />
将记录器显示为禁用的答案很重要——为了短路昂贵的调试代码——而不仅仅是将其转储到Null
目标中。
解决方案
在示例中的问题中链接的文档稍远一点,有这样的:
<logger name="Name.Space.*" minlevel="Debug" maxlevel="Error" final="true" /> <logger name="*" writeTo="f1" />
配置为忽略来自 Name.Space 命名空间中级别介于 Debug 和 Error(即 Debug、Info、Warn、Error)之间的任何类的消息。第一条规则选择记录器,但由于没有 writeTo,因此不会记录这些消息。而且,由于该规则包含“final=true”,因此最后一条规则不适用于匹配第一条规则的记录器。
我尝试了以下方法并且成功了:
<logger name="Example.*" minlevel="Trace" final="true" />
<logger name="*" minlevel="Trace" writeTo="file" />
关键是将最低级别 ( Trace
) 指定为minlevel
,而不是Off
。这符合文档所说的规则。
我猜这已经改变了版本,因此造成了混乱。
推荐阅读
- c++ - 内存访问冲突
- html - 如何在每个列表项的末尾添加雪佛龙,从右对齐
- deep-learning - 如何在预训练的 BERT 模型之上添加多类多标签层?
- android - 我正在尝试访问外部存储目录,以获取歌曲列表并在 RecyclerView 中显示它们
- javascript - HTML5 Canvas Recording 在新的 Blob 记录时崩溃Chunks
- pug - 如何根据变量渲染块?哈巴狗(翡翠)
- java - JNA:如何在结构中指定可变长度(0+)数组?
- javascript - 在 JavaScript 自适应卡片中提交时禁用提交按钮/加载卡片
- android - FAB 按钮未在 android studio 布局编辑器中正确显示可绘制对象
- apache-nifi - 仅当我们从前一个处理器获取 Request.json 时,如何创建 NiFi 工作流程 - 将所有文件转发到下一个处理器?