2012-09-06 128 views
0

我正在嘗試記錄錯誤消息以及將消息調試到兩個不同的文件。我正在使用兩個不同的文件appender來做到這一點。使用log4net記錄到兩個不同的日誌文件

這裏是我的app.config文件:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<configSections> 
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
</configSections> 
<log4net> 
<appender name="DebugFileAppender" type="log4net.Appender.FileAppender"> 
    <param name="File" value="DebugLog.log" /> 
    <param name="AppendToFile" value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <param name="ConversionPattern" value="%date %level %logger - %message %newline" /> 
    </layout> 
    <filter type="log4net.Filter.LevelMatchFilter"> 
    <levelToMatch value="DEBUG"/> 
    </filter> 
    <filter type="log4net.Filter.DenyAllFilter" /> 
</appender> 

<appender name="ErrorFileAppender" type="log4net.Appender.FileAppender"> 
    <param name="File" value="ErrorLog.log" /> 
    <param name="AppendToFile" value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <param name="ConversionPattern" value="%date %level %logger %type %exception %line %location - %message     %newline" /> 
    </layout> 
    <filter type="log4net.Filter.LevelMatchFilter"> 
    <levelToMatch value="ERROR"/> 
    </filter> 
    <filter type="log4net.Filter.DenyAllFilter" /> 
</appender> 

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="DebugFileAppender" /> 
</root> 

<logger name="ErrorFileAppender" > 
    <level value="ERROR"/> 
    <appender-ref ref="ErrorFileAppender"/> 
</logger> 

調試消息正常工作,但是當我改變程序包含一個異常錯誤,該錯誤不被寫入到文件中。

這裏是我用來捕獲異常的代碼:

catch (Exception e) 
{ 
    logger.Error(e); 
} 
+0

我想通解決我一直存在的問題。修改根目錄以包含以下內容。 <附加器-REF REF = 「ErrorFileAppender」/> <附加器-REF REF = 「DebugFileAppender」/> 我希望這可以幫助其他人誰也有同樣的問題:) –

+5

我建議你編寫答案並接受它。這種方式更具可讀性...... –

回答

1

修改根目錄下包含以下內容:

<root> 
    <appender-ref ref="ErrorFileAppender"/> 
    <appender-ref ref="DebugFileAppender" /> 
</root> 

從評論移動爲清楚起見

相關問題