2014-04-02 25 views
0

我想在我的應用程序中有兩個日誌文件。第一個記錄所有記錄器的所有消息,除了特定詳細記錄器的DEBUG輸出外,我希望將其輸入到第二個日誌文件中。兩個appenders之間複雜的log4net記錄器拆分

我仍然希望看到來自詳細記錄器的INFO-FATAL消息進入第一個日誌文件。這可能嗎?

我看到了向appender-refs here添加閾值元素的建議,但它似乎不起作用。

這是我到目前爲止有:

<log4net> 
    <appender name="fileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="log4net" /> 
    <staticLogFileName value="false" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Date" /> 
    <datePattern value="'.'yyyyMMdd'.log'" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline" /> 
    </layout> 
    </appender> 
    <root> 
    <level value="ALL" /> 
    <appender-ref ref="fileAppender" /> 
    </root> 

    <!-- Separate appender for the Verbose logger debug output --> 
    <appender name="verboseDebugAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="verboselog" /> 
    <staticLogFileName value="false" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Date" /> 
    <datePattern value="'.'yyyyMMdd'.log'" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="DEBUG" /> 
     <levelMax value="DEBUG" /> 
    </filter> 
    </appender> 
    <logger name="VerboseLogger" additivity="false"> 
    <level value="DEBUG" /> 

    <!-- Doesn't work --> 
    <appender-ref ref="verboseDebugAppender"> 
     <threshold value="ALL" /> 
    </appender-ref> 
    <appender-ref ref="fileAppender"> 
     <threshold value="ERROR" /> 
    </appender-ref> 
    </logger> 

</log4net> 
+0

看看這裏http://stackoverflow.com/questions/21186378/log4net-logging-of-two-different-levels-to-two-different-appenders-for-the-same/21188397#21188397 – WhileTrueSleep

+0

這就是我與上面鏈接的問題。我嘗試過,但將閾值元素添加到appender-ref中並不起作用。 –

回答

0

一個問題,我看到:

刪除這些行

<!-- Doesn't work --> 
<appender-ref ref="verboseDebugAppender"> 
    <threshold value="ALL" /> 
</appender-ref> 
<appender-ref ref="fileAppender"> 
    <threshold value="ERROR" /> 
</appender-ref> 

,改變

<root> 
    <level value="ALL" /> 
    <appender-ref ref="fileAppender" /> 
    </root> 

<root> 
    <appender-ref ref="verboseDebugAppender"> 
     <threshold value="ALL" /> 
    </appender-ref> 
    <appender-ref ref="fileAppender"> 
     <threshold value="ERROR" /> 
    </appender-ref> 
</root>