我配置了以下记录器。
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="file" xsi:type="File" fileName="trace.log"/>
<target name="trace" xsi:type="OutputDebugString"/>
<target name="console" xsi:type="ColoredConsole" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="file" />
<logger name="*" minlevel="Info" writeTo="trace" />
<logger name="*" minlevel="Info" writeTo="console" />
</rules>
</nlog>
我希望 Component。* 的所有内容仅从WARN及更高版本的所有记录器中记录。使用NHibernate这很容易:
<logger name="NHibernate.SQL">
<level value="OFF"/>
</logger>
我尝试添加以下内容:
<logger name="Component.*" minlevel="Warn" final="true" />
这不起作用。
如何仅针对所有目标的记录器命名空间从某个级别进行日志记录。
答案 0 :(得分:9)
解决方案是:
<logger name="Component.*" maxlevel="Info" final="true" />
你基本上说,对于logger(s)X我想跳过所有匹配Info或更低的日志条目,因为它没有writeTo
属性。
此处记录:
https://github.com/nlog/NLog/wiki/Configuration-file
使用样本:
<logger name="Name.Space.*" minlevel="Debug" maxlevel="Error" final="true" />