C# NLog:IsTraceEnabled的意外beheavior

C# NLog:IsTraceEnabled的意外beheavior,c#,nlog,C#,Nlog,我对IsTraceEnabled(还有等效函数IsDebugEnabled…)的结果有些怀疑 如果我调用NLog.LogManager.GetLogger(“TEST”),我会得到一个意外的响应true 有人知道我做错了什么吗?最终属性与(最小)级别规则和名称(过滤器)一起应用 因此,在你的情况下: 如果记录器为“测试”且最低级别为错误,则写入日志文件并标记为最终 由于logevent是作为debug编写的,因此它与第一条规则不匹配,但与第二条规则匹配 ... 如果我删除final属

我对
IsTraceEnabled
(还有等效函数
IsDebugEnabled
…)的结果有些怀疑

如果我调用
NLog.LogManager.GetLogger(“TEST”)
,我会得到一个意外的响应
true




有人知道我做错了什么吗?

最终属性与(最小)级别规则和名称(过滤器)一起应用

因此,在你的情况下:


如果记录器为“测试”且最低级别为错误,则写入日志文件并标记为最终

由于logevent是作为debug编写的,因此它与第一条规则不匹配,但与第二条规则匹配


...

如果我删除final属性,我也会遇到同样的问题是,如果没有final属性is,则第二条规则适用。第二条规则中的过滤器在日志记录时进行评估(例如,它也可以是“消息长度<10”,以便为日志记录程序“测试”启用该规则是否有其他可能检查日志级别是否已启用?不幸的是,只能通过自己检查规则