我对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核心中运行
我误会了它的工作原理吗?
答案 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>