2010-08-26 13 views
5

मैं नीचे लॉग 4नेट कॉन्फ़िगरेशन का उपयोग कर रहा हूं। मैं एक अलग फ़ाइल में प्रदर्शन लॉग लिखने की कोशिश कर रहा हूं लेकिन आउटपुट दोनों फाइलों पर जा रहा है। भले ही मैं निर्दिष्ट कर रहा हूं:लॉग 4net को दो अलग-अलग फाइलों से लिखने से रोकने के लिए

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

मैं इस मामले में लॉगऑनेट को डिफ़ॉल्ट एपेंडर से लिखने से कैसे रोकूं?

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

उत्तर

7

रूट के नीचे सभी लॉगर स्तर रूट लॉगर से परिशिष्ट को प्राप्त करते हैं। यही कारण है कि आपके संदेश दो बार लॉग इन हैं। अपने लॉगर की विरासत को अक्षम करने के लिए additivity पैरामीटर को गलत पर सेट करें:

<logger additivity="false" name="PerformanceMetricsLogger"> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingFileAppenderForPerformance" /> 
    </logger> 
संबंधित मुद्दे