2016-04-12 4 views
5

以下のロガーを設定しました。*すべてのターゲットのロガーネームスペースの特定のレベルからのみログを記録するようにNLogを設定する方法

<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> 

は私がコンポーネントのためにすべてをしたい。WARN、すべてのロガーの上位からのみ記録される*に。 NHibernateのでは、これは簡単です:

<logger name="NHibernate.SQL"> 
    <level value="OFF"/> 
</logger> 

私は、次を追加しようとしました:

<logger name="Component.*" minlevel="Warn" final="true" /> 

これは動作しません。

すべてのターゲットのロガーネームスペースの特定のレベルからのみログを記録する方法。

答えて

3

解決策は以下のとおりです。

<logger name="Component.*" maxlevel="Info" final="true" /> 

あなたは基本的にロガー(S)X用私はwriteTo属性を持っていないこのよう情報以下に一致するすべてのログエントリをスキップしたい、と言います。

ここに文書化されている:サンプルと

https://github.com/nlog/NLog/wiki/Configuration-file

<logger name="Name.Space.*" minlevel="Debug" maxlevel="Error" final="true" /> 
+0

私はより論理的log4netのアプローチを好む.... –

関連する問題