使用log4net登录到两个不同的日志文件

时间:2012-09-06 14:15:56

标签: log4net log4net-configuration

我正在尝试将错误消息以及调试消息记录到两个不同的文件中。我使用两个不同的文件追加器来执行此操作。

这是我的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);
}

1 个答案:

答案 0 :(得分:1)

修改根目录以包含以下内容:

<root>
  <appender-ref ref="ErrorFileAppender"/>
  <appender-ref ref="DebugFileAppender" /> 
</root>
为了清晰起见,

从评论中移出