I have an ASP.NET Core web app with log4net 2.0.8 added via Nuget and initialised with this config file:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingFileAppenderInfo" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="Logs\mysite-dev-%utcdate{yyyy-MM-dd}-info.log" />
<maxSizeRollBackups value="500" />
<maximumFileSize value="5MB" />
<threshold value="DEBUG"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="INFO" />
</filter>
<filter class="log4net.Filter.DenyAllFilter"/>
</appender>
<appender name="RollingFileAppenderError" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="Logs\mysite-dev-%utcdate{yyyy-MM-dd}-errors.log" />
<maxSizeRollBackups value="500" />
<maximumFileSize value="5MB" />
<threshold value="WARN"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
<levelMax value="ERROR" />
</filter>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderInfo" />
<appender-ref ref="RollingFileAppenderError" />
</root>
</log4net>
This is initialised in Startup
like this:
loggerFactory.AddLog4Net($"log4net.{env.EnvironmentName}.config");
This uses a solution I found for wiring up log4net in ASP.NET Core. Obviously there are a few versions of the above config named log4net.Development.config etc, but they're all very similar. When I run this locally in Visual Studio I see the following errors in the Output windows:
log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [maxSizeRollBackups] to set object on [log4net.Appender.FileAppender]
log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [maximumFileSize] to set object on [log4net.Appender.FileAppender]
These errors are internal only and don't seem to affect the running app. But I need to be able to configure these log4net properties. So how can I set the maxSizeRollBackups
and maximumFileSize
properties in my log4net configuration? Am I doing something wrong?
The properties are no part of the FileAppender, try the RollingFileAppender. That is the appender you are need:
type="log4net.Appender.RollingFileAppender"