|
List Info
Thread: root level logger using other logger level
|
|
| root level logger using other logger
level |
  United States |
2008-05-29 16:58:06 |
|
|
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 LogsICU.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
|
| RE: root level logger using other logger
level |

|
2008-05-30 06:18:26 |
|
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
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 LogsICU.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
|
| RE: root level logger using other logger
level |
  United States |
2008-05-30 09:47:21 |
|
Thanks Rob, now I get it. I’ll try the level filterR30; sounds
perfect.
From: Rob Prouse
[mailto:Rob.Prouse Ivara.com]
Sent: Friday, May 30, 2008 4:18 AM
To: Log4NET User
Subject: RE: root level logger using other logger level
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
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?
…
|
[1-3]
|
|
|
about | contact Other archives ( Real Estate discussion Medical topics )
|