次のロガーを構成しています。
<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" />
これは機能しません。
allターゲットのロガー名前空間の特定のレベルからのみログを記録する方法。
解決策は次のとおりです。
<logger name="Component.*" maxlevel="Info" final="true" />
基本的に、ロガーXの場合、writeTo
属性がないため、Info以下に一致するすべてのログエントリをスキップします。
それはここに文書化されています:
https://github.com/nlog/NLog/wiki/Configuration-file
サンプルについて:
<logger name="Name.Space.*" minlevel="Debug" maxlevel="Error" final="true" />