NLog:IsTraceEnabled意外的恶作剧

时间:2017-10-02 07:30:40

标签: c# nlog

我对IsTraceEnabled(也是等效函数IsDebugEnabled ....)的结果有些怀疑。

如果我拨打NLog.LogManager.GetLogger("TEST"),则会收到意外回复true

<rules>
    <!-- add your logging rules here -->
    <logger name="TEST" minlevel="Error" writeTo="logfile" final="true"/>
    <logger name="*" minlevel="Trace" writeTo="logfile">
      <filters>
        <when condition="equals('${logger}','System.ServiceModel.MessageLogging')" action="Ignore" />
        <when condition="equals('${logger}','XPO')" action="Ignore" />
      </filters>
    </logger>
  </rules>

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

最终属性与(min)级别规则和名称(过滤器)结合使用。

所以在你的情况下:

 <logger name="TEST" minlevel="Error" writeTo="logfile" final="true"/>

如果记录器是&#34; TEST&#34;并且最低级别是错误,然后写入logfile并标记为final。

由于您的logevent被编写为调试,它与第一个规则不匹配,但它与第二个规则匹配。

<logger name="*" minlevel="Trace" writeTo="logfile">
   ...
</logger>