[prev in list] [next in list] [prev in thread] [next in thread]
List: log4net-dev
Subject: [jira] Created: (LOG4NET-253) GetLogger creates rolling files even
From: "Yves Bastiand (JIRA)" <jira () apache ! org>
Date: 2010-04-07 9:40:33
Message-ID: 945309035.39261270633233440.JavaMail.jira () brutus ! apache ! org
[Download RAW message or body]
GetLogger creates rolling files even for the unreferenced files
---------------------------------------------------------------
Key: LOG4NET-253
URL: https://issues.apache.org/jira/browse/LOG4NET-253
Project: Log4net
Issue Type: Bug
Components: Appenders
Affects Versions: 1.2.10
Environment: Windows XP
Reporter: Yves Bastiand
Hi,
I have a C# solution that contains three executables. I have each of these three \
executables sharing the same log4net configuration file. At startup of each of the \
executable, they retrieve a logger (one logger per executable, as per configuration \
file further below). When one of the executable performs Log.GetLogger(<loggerName>), \
it creates all the rolling files instead of only the one rolling file that is \
referred to as appender-ref in the executable's logger configuration.
For instance, when I startup my sending daemon executable, it performs \
Log.GetLogger("SendingDaemonLogger") which creates 3 files Log/RuleScheduler.txt, \
Log/NotificationGenerator.txt and Log/NotificationSender.txt instead of only the \
desired Log/NotificationSender.txt.
Then when I startup another of the executables, for instance the rule scheduler \
daemon, this other process cannot write in Log/RuleScheduler.txt because it has been \
created and locked by the sending daemon process.
I am guessing that there may be three different solutions to my problem:
1. The GetLogger should only create the rolling file appenders that are referenced in \
the config 2. I should have one config file per executable, this way each config file \
could list only one rolling file appender and starting each of the executable would \
not create the rolling files of the other daemons. I am however reluctant to do this \
because some of the configuration (SMTP appender, console appender) is shared between \
the daemons and I don't want to have duplicate copies to maintain. Unless there is a \
way to have a config file including another one? 3. Maybe there is a way to configure \
the rolling file so that concurrent access across processes is allowed? This solution \
still isn't perfect in my opinion.
Thanks in advance for your help!
My configuration file is below:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RuleSchedulerFileAppender" \
type="log4net.Appender.RollingFileAppender"> <file value="Log/RuleScheduler.txt"/>
<threshold value="INFO"/>
<appendToFile value="true"/>
<!-- For each month, keep up to 100 files of 10Mb within the month-->
<rollingStyle value="Composite" />
<datePattern value="yyyyMM" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="10MB" />
<!-- The latest log file has the greatest number -->
<countDirection value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%ndc [%thread] %date %-4timestamp %-5level %message \
(%method(), L%line %class) %newline%exception"/> </layout>
</appender>
<appender name="NotificationGeneratorFileAppender" \
type="log4net.Appender.RollingFileAppender"> <file \
value="Log/NotificationGenerator.txt"/> <threshold value="INFO"/>
<appendToFile value="true"/>
<!-- For each month, keep up to 100 files of 10Mb within the month-->
<rollingStyle value="Composite" />
<datePattern value="yyyyMM" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="10MB" />
<!-- The latest log file has the greatest number -->
<countDirection value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%ndc [%thread] %date %-4timestamp %-5level %message \
(%method(), L%line %class) %newline%exception"/> </layout>
</appender>
<appender name="NotificationSenderFileAppender" \
type="log4net.Appender.RollingFileAppender"> <file \
value="Log/NotificationSender.txt"/> <threshold value="INFO"/>
<appendToFile value="true"/>
<!-- For each month, keep up to 100 files of 10Mb within the month-->
<rollingStyle value="Composite" />
<datePattern value="yyyyMM" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="10MB" />
<!-- The latest log file has the greatest number -->
<countDirection value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%ndc [%thread] %date %-4timestamp %-5level %message \
(%method(), L%line %class) %newline%exception"/> </layout>
</appender>
<appender name="DebugConsoleAppender" \
type="log4net.Appender.ColoredConsoleAppender"> <threshold value="ALL"/>
<mapping>
<level value="FATAL" />
<foreColor value="White" />
<backColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="ERROR" />
<backColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="WARN" />
<backColor value="Yellow, HighIntensity" />
</mapping>
<mapping>
<level value="DEBUG" />
<backColor value="Green" />
</mapping>
<mapping>
<level value="INFO" />
<foreColor value="White" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%ndc [%thread] %date %-4timestamp %-5level %logger \
%message (%method(), L%line %class) %newline%exception" /> </layout>
</appender>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender,log4net">
<threshold value="ERROR" />
<to value="biopacs-notification@bioclinica.com" />
<from value="biopacs.notification.server.logger@bioclinica.com" />
<subject value="Alert in BioPACS notification server" />
<smtpHost value="biomail04.biodoma04.bi.corp" />
<bufferSize value="0" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%ndc [%thread] %date %-4timestamp %-5level %logger \
%message (%method(), L%line %class) %newline%exception" /> </layout>
</appender>
<root>
<level value="ALL" />
</root>
<logger name="RuleSchedulerLogger" additivity="true">
<level value="ALL"/>
<appender-ref ref="SmtpAppender"/>
<appender-ref ref="DebugConsoleAppender"/>
<appender-ref ref="RuleSchedulerFileAppender"/>
</logger>
<logger name="NotificationGeneratorLogger" additivity="true">
<level value="ALL"/>
<appender-ref ref="SmtpAppender"/>
<appender-ref ref="DebugConsoleAppender"/>
<appender-ref ref="NotificationGeneratorFileAppender"/>
</logger>
<logger name="SendingDaemonLogger" additivity="true">
<level value="ALL"/>
<appender-ref ref="SmtpAppender"/>
<appender-ref ref="DebugConsoleAppender"/>
<appender-ref ref="NotificationSenderFileAppender"/>
</logger>
</log4net>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic