2010-08-26 6 views
5

Aşağıdaki log4net yapılandırmasını kullanıyorum. Performans günlüklerini ayrı bir dosyaya yazmaya çalışıyorum ama çıktı her iki dosyaya da gidiyor. Ben specifiying ediyorum rağmen:Log4net'i iki ayrı dosyaya nasıl yazılır?

private static readonly log4net.ILog log = log4net.LogManager.GetLogger("PerformanceMetricsLogger"); 

nasıl bu durumda varsayılan appender yazmasını log4net durdurabilirim?

<log4net> 
    <!-- Define some output appenders --> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">  
    <file type="log4net.Util.PatternString" value="c:\ilap\IlapAdServerLog_%property{log4net:HostName}.txt" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="-1" /> 
    <maximumFileSize value="2000KB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
    </appender> 

    <appender name="RollingFileAppenderForPerformance" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="c:\ilap\IlapAdServerLog_%property{log4net:HostName}.peformance.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="-1" /> 
    <maximumFileSize value="2000KB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
    </appender> 

    <!-- Setup the root category, add the appenders and set the default level --> 
    <root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingFileAppender" /> 
    </root> 

    <logger name="PerformanceMetricsLogger"> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingFileAppenderForPerformance" /> 
    </logger> 
</log4net> 

cevap

7

Kökün altındaki tüm logger düzeyleri, ekleri kök günlüğünden devralır. Bu yüzden mesajlarınız iki kez kaydedilir. Kaydedicinizin devralmasını devre dışı bırakmak için additivity parametresini false değerine ayarlayın:

<logger additivity="false" name="PerformanceMetricsLogger"> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingFileAppenderForPerformance" /> 
    </logger>