2016-06-01 4 views
0

私はロギングにlog4netを使用するプロジェクトを作成しました。今、私はログファイルに3rdparty-dllのログを記録しています。サードパーティ製のdllが "私"のファイルにログインしていることをどうやって防ぎますか?log4net - サードパーティのDLLは私のファイルに記録されます

これは私のロギング設定です:

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
</configSections> 
<log4net> 
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> 
    <applicationName value="proconact.dataservice" /> 
    <threshold value="FATAL" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger{2} - %message%newline" /> 
    </layout> 
    </appender> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="${ALLUSERSPROFILE}/proconact/proconact.dataservice.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="1MB" /> 
    <staticLogFileName value="true" /> 
    <threshold value="DEBUG" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger{2} - %message%newline" /> 
    </layout> 
    </appender> 
    <root> 
    <level value="All" /> 
    <appender-ref ref="RollingFileAppender" /> 
    </root> 
</log4net> 

答えて

0

あなたのコードがすべて1つの名前空間にある場合は、あなたのような何かを行うことができます。

<root> 
    <level value="OFF" /> 
</root> 

<logger name="MyNameSpace"> 
    <level value="ALL" /> 
    <appender-ref ref="RollingFileAppender" /> 
</logger> 

これはMYNAMESPACEで始まるすべての名前空間(およびそれがMYNAMESPACE内のすべての名前空間を含む)を除いて、ログをオフに切り替えます。

0

サードパーティのDLLで使用されているロガー名が一貫している場合は、filterをアペンダーに追加することができます。これにより、ロガー名はThird.Party.Logger.Namespaceで始まります。ただし、各アペンダーに追加する必要がありますが、root要素に追加することはできません。

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <filter type="log4net.Filter.LoggerMatchFilter"> 
    <loggerToMatch value="Third.Party.Logger.Namespace" /> 
    <acceptOnMatch value="false" /> 
</filter> 
… 
関連する問題