NLog意外写入具有较低级别限制的日志-日志级别被忽略

时间:2018-11-20 12:19:57

标签: nlog

我对NLog日志记录级别回退感到困惑。我有这套规则:

  <rules>
      <!-- Send Microsoft into a black hole to hide their logs -->
      <logger name="Microsoft.*" maxLevel="Warn" final="true" />
      <logger name="commands" minlevel="Info" writeTo="logger" final="true" />
    <logger name="*" minlevel="Trace" writeTo="logger" />
    <logger name="exception" minlevel="Error" writeTo="publisher" final="true" />
  </rules>

我希望发生的事情是,任何具有记录器名称“ commands”的记录都只会在信息级别或更高级别记录。无论其他任何记录器名称都将被记录。

正在发生的事情是,当我获得记录器的“命令”并检查其属性时,每个日志级别均已启用,因此,如果我提供了Debug的日志级别,则该日志级别仍会记录。据我了解,事实并非如此。

我认为这与我的后备记录器(名称=“ *”)有关,我认为应该对“ commmand”记录器中的“ final = true”进行进一步的记录检查。

它在.net核心中运行

我误会了它的工作原理吗?

1 个答案:

答案 0 :(得分:1)

也许这会起作用:

  <rules>
    <!-- Send Microsoft into a black hole to hide their logs -->
    <logger name="Microsoft.*" maxLevel="Warn" final="true" />
    <logger name="commands" maxLevel="Debug" final="true" />

    <logger name="commands" minlevel="Info" writeTo="logger" final="true" />
    <logger name="*" minlevel="Trace" writeTo="logger" />
    <logger name="exception" minlevel="Error" writeTo="publisher" final="true" />
  </rules>