2010-08-26 6 views
5

Tôi đang sử dụng cấu hình log4net bên dưới. Tôi đang cố gắng để viết nhật ký hiệu suất cho một tập tin riêng biệt nhưng đầu ra là đi đến cả hai tập tin. Mặc dù tôi đang chỉ định:Cách dừng log4net bằng văn bản sang hai tệp riêng biệt

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

Làm cách nào để ngăn log4net ghi vào ứng dụng mặc định trong trường hợp này?

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

Trả lời

7

Tất cả các mức logger bên dưới gốc kế thừa các ứng dụng từ trình ghi nhật ký gốc. Đây là lý do tại sao thư của bạn được ghi hai lần. Để vô hiệu hóa kế thừa của trình ghi nhật ký, hãy đặt tham số additivity thành false:

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