This is my app config
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type='log4net.Util.PatternString' value='%property{LogPath}\%property{LogFileName}' />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level [%thread] - %message%newline" />
</layout>
</appender>
<appender name="PerformanceLogger" type="log4net.Appender.RollingFileAppender">
<file type='log4net.Util.PatternString' value='%property{LogPath}\%property{PerformanceLogFileName}' />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="1" />
<maximumFileSize value="2MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level [%thread] - %message%newline" />
</layout>
</appender>
<logger Name="PerformanceLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref="PerformanceLogger"/>
</logger>
</log4net>
When I try to get loggers and write to it. It just creates File for PerformanceLogger but does not write to it.
log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
performaceLog = LogManager.GetLogger("PerformanceLogger");
but my log.Info("test");
works fine and it creates a file and also writes to it.
Any Advice on this, please?
The logger definition for the PerformanceLogger is incorrect - you have used Name
instead of name
to define the logger's name. Change this to the following and it should work correctly:
...
<logger name="PerformanceLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref="PerformanceLogger"/>
</logger>
...