Friday, May 18, 2012
 
The best way to analyze your logs! Minimize
 Log4Net Mail archive   

The Log4Net mailing list is a great source of information about using log4Net, in this forum we collect all the messages in the log4net user list and some selected threads from the developer list.

Subject: root level logger using other logger level
Prev Next
You are not authorized to post a reply.

Author Messages
Don Taylor

05/29/2008 11:58 PM  

We have multiple loggers set up for various services that make up our system.  I think I have the service configured to log ERRORs (and FATAL) to one file for all code, then qualified a couple separate thread based services to log debug type information to other files.  Instead I see DigitalBridgeTrafficControl INFO message in trafficControl.log, where I thought should ONLY see ERROR and FATAL.

Does a root logger inherit other logger levels, or did I just screw the configuration up?

The log4net.config file:

<?xml version="1.0" encoding="utf-16"?>

<log4net>

  <appender name="Console" type="log4net.Appender.ConsoleAppender">

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{ABSOLUTE} %thread %logger %5level [%message] %newline%exception" />

    </layout>

  </appender>

  <appender name="EventLogger" type="log4net.Appender.EventLogAppender">

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{ABSOLUTE} %thread %logger %5level [%message] %newline%exception" />

    </layout>

    <logName value="Traffic Control" />

  </appender>

  <appender name="TrafficControl" type="log4net.Appender.RollingFileAppender">

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{ABSOLUTE} %thread %logger %5level [%message] %newline%exception" />

    </layout>

    <file value="trafficControl.log" />

    <appendToFile value="true" />

    <maximumFileSize value="10MB" />

    <maxSizeRollBackups value="10" />

  </appender>

  <appender name="DigitalBridgeTrafficControl" type="log4net.Appender.RollingFileAppender">

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%level: %date{ISO8601} %logger [%message] %exception%newline" />

    </layout>

    <file value="digitalBridgeTrafficControl.log" />

    <appendToFile value="true" />

    <datePattern value="yyyyMMdd" />

    <maxSizeRollBackups value="28" />

  </appender>

  <appender name="MessageLifetimeUdpAppender" type="log4net.Appender.UdpAppender">

    <remoteAddress value="localhost" />

    <remotePort value="8080" />

    <layout type="log4net.Layout.XmlLayout, log4net" />

    <encoding value="Unicode" />

  </appender>

  <appender name="MessageLifetimeRemotingAppender" type="log4net.Appender.RemotingAppender">

    <sink value="tcp://localhost:8081/LoggingSink" />

    <lossy value="false" />

    <bufferSize value="95" />

    <layout type="log4net.Layout.XmlLayout, log4net" />

  </appender>

  <appender name="ICUFileRolloverLogger" type="log4net.Appender.RollingFileAppender">

    <file value="ICU Logs\ICU.log" />

    <appendToFile value="true" />

    <maximumFileSize value="50MB" />

    <maxSizeRollBackups value="100" />

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{ISO8601},%message%newline" />

    </layout>

  </appender>

  <root>

    <level value="ERROR" />

    <appender-ref ref="TrafficControl" />

  </root>

  <logger name="EnterpriseApplicationIntegration">

    <level value="ALL" />

    <appender-ref ref="DigitalBridgeTrafficControl" />

  </logger>

  <logger name="Tideworks.TC.ICUUtilities">

    <level value="INFO" />

    <appender-ref ref="ICUFileRolloverLogger" />

  </logger>

</log4net>

Thanks for any help! 

Don

Rob Prouse

05/30/2008 1:18 PM  

Don,

 

The root logger does not inherit the other logger levels, all of your other logger levels below root inherit the appenders from the root logger. So your EnterpriseApplicationIntegration will inherit the root appender and log to trafficControl.log.

 

You have two choices here,

 

1.      Add a level filter to your TrafficControl appender to only log ERROR and FATAL.

2.      On your other loggers, set the attribute additivity=”false” so they do not inherit the TrafficControl appender. The only problem with this is that Error and Fatal messages from your other logs will not go to TrafficControl.

 

Does this make sense or do you need some examples?

 

Rob Prouse

 

Don Taylor

05/30/2008 4:47 PM  

Thanks Rob, now I get it.  I’ll try the level filter… sounds perfect.

 

Don Taylor

You are not authorized to post a reply.
Forums > Log4Net > Log4Net Mail archive > root level logger using other logger level



ActiveForums 3.7

 

 

 

 

 

 

 

 

Log4Net Dashboard

Log analysis and monitoring made easy!

Log4Net Dashboard is a log viewer that can read log statements from a variety of logging output targets.

You can download a free developer version.

  

Check it out!

On the demonstration site you can try it  with live data.demo.l4ndash.com - Try Log4Net Dashboard with live data

The mail archive is a copy of all the mail sent to the mail address: log4net-user@logging.apache.org, organized as a forum.

If you would like to participate in the mail list, send a mail to log4net-user-subscribe@logging.apache.org.

More information about the mailing list is available on: http://logging.apache.org/log4net/support.html

 

A complete topic list is available and can be viewed here (warning, it takes some time to load)

 

Copyright 2005-2008 by FaktNet AS Terms Of Use Privacy Statement