我已经看到了一些从特定命名空间中抑制日志的示例,但它们似乎都抑制了除了之外的所有命名空间而不是相反的方式(那是对的比如说,"给我增强了这个命名空间的日志记录并禁止其他所有内容"等等。
有人请解释为什么以下配置不会禁止My.Namespace
命名空间中的记录器吗?目标是确保My.Namespace
命名空间中的任何记录器仅记录 错误,而其他所有记录都不受影响。
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets async="true">
<target name="console" xsi:type="Console" layout="${level} ${message}" />
</targets>
<rules>
<logger name="My.Namespace.*" minlevel="Error" writeTo="console" final="true" />
<logger name="*" minlevel="Debug" writeTo="console" />
</rules>
</nlog>
答案 0 :(得分:0)
虽然我认为能够为命名空间抑制设置一揽子规则会更清楚,但我已设法使用以下配置:
<targets async="true">
<target xsi:type="Console" name="console" layout="${longdate} ${level} ${message}" />
</targets>
<rules>
<!-- Anything less or equal to DEBUG, don't write to anything (no target) -->
<logger name="My.Namespace.*" maxlevel="Debug" final="true" />
<!-- Anything greater or equal to INFO, write to the console target -->
<logger name="My.Namespace.*" minlevel="Info" writeTo="console" final="true" />
<logger name="*" minlevel="Debug" writeTo="console" />
</rules>