2016-03-23 4 views
1

次のnlog構成があります。私はちょうどMeazure.Core.SiteContextからの非エラーメッセージを記録しないことを望むでしょう。1つのロガーでログレベルを上げる方法

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <extensions> 
     <add assembly="NLog.Targets.GrowlNotify" /> 
     <add assembly="Gelf4NLog.Target" /> 
    </extensions> 
    <targets> 
     <target name="file" xsi:type="File" fileName="${basedir}/log.log" layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:format=Type,Message,StackTrace:innerFormat=Type,Message,StackTrace:maxInnerExceptionLevel=10:innerExceptionSeparator=\n\t}" maxArchiveFiles="1" archiveAboveSize="1000000" /> 
     <target name="dev" xsi:type="Console" /> 
     <target name="growl" type="GrowlNotify" host="" password="" /> 
    </targets> 
    <rules> 
     <logger name="Meazure.Core.SiteContext" minlevel="Error" writeTo="file" final="true" /> 
     <logger name="*" minlevel="Trace" writeTo="dev" /> 
     <logger name="*" minlevel="Debug" writeTo="file" /> 
     <logger name="*" minLevel="Info" writeTo="growl" /> 
    </rules> 
</nlog> 

これは機能しません。私はまだこのようなメッセージを受け取りますfile

2016-03-23 15:08:58.0125|DEBUG|Meazure.Core.SiteContext|Closed connection at 2016-03-23 3:08:58 PM -07:00 

私は間違って何をしていますか?

答えて

1

最終規則は、組み合わせのために働く:

  • loggername
  • minlevel

loggernameのイベント "Meazure.Core.SiteContext" とminlevel "エラー" とは行かないようにロガー規則2-4。しかし、レベルが「デバッグ」であれば、そのレベルになります。

新しいターゲット:

<target name="null" xsi:type="Null" /> 

ルール:

<logger name="Meazure.Core.SiteContext" minlevel="Error" writeTo="file" final="true" /> 
<logger name="Meazure.Core.SiteContext" writeTo="null" final="true"/> 
<logger name="*" minlevel="Trace" writeTo="dev" /> 
<logger name="*" minlevel="Debug" writeTo="file" /> 
<logger name="*" minLevel="Info" writeTo="growl" /> 
+0

ありがとう

これを実現する最良の方法は、Null targetを使用することです!それは理にかなっている –

関連する問題