strange_developer
strange_developer

Reputation: 1417

Logging to two different log files with log4net

I am attempting to log error messages as well as debug messages to two different files. I am using two different file appenders to do this.

Here is my app.config file:

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

The debug messages work fine but when I alter the program to contain an exception error, the error is not written to the file.

Here is the code I use to catch the exception:

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

Upvotes: 1

Views: 3339

Answers (1)

Noah
Noah

Reputation: 15340

Modify the root to contain the following:

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

moved from comment for clarity

Upvotes: 1

Related Questions