Hello,
I use log4net 1.2.10 in an asp.net mvc site (.NET 3.5 SP1).
There may be something I misunderstood regarding loggers and additivity.
I have the following configuration :
[code]
<log4net>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-4timestamp [%thread] %-5level %logger
%ndc - %message%newline" />
</layout>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="logs/workflowpdf.log" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger -
%message%newline" />
</layout>
</appender>
<!-- Set root logger level to ERROR -->
<root>
<level value="ERROR" />
<appender-ref ref="RollingFile" />
</root>
<!-- cas de debug de certaines classes -->
<logger name="mycompany.myproject.firstnamespace.FirstClass">
<level value="ERROR" />
<appender-ref ref="Console" />
<appender-ref ref="RollingFile" />
</logger>
<logger name="mycompany.myproject.secondnamespace.SecondClass">
<level value="DEBUG" />
<appender-ref ref="Console" />
<appender-ref ref="RollingFile" />
</logger>
</log4net>
[/code]
What I observe regarding debug log : FirstClass and SecondClass "debug"
instructions are duplicated in the log file. Errors are not duplicated.
If I use <logger name="mycompany.myproject.firstnamespace.FirstClass"
additivity="false"> and the same for the second logger, onlmy the FirstClass
logger logs, despite the two classes belonging to different namespaces.
Here is the way I retrieve a logger in a class :
private static readonly ILog logger =
LogManager.GetLogger(typeof(FirstClass).FullName);
By the way, I don't know where to find "Console" appender with Visual Web
Developper and its local development web server.
Maybe I could just remove this logger...
Thanks for any hint,
Barbara Post