2012-09-06 89 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> 

从评论移动为清楚起见

相关问题