Log4net logs all levels, not what I configured for this.

I have the "INFO" level set, but I see DEBUG events in the log.

Config

<?xml version="1.0"?>

<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    </configSections>

    <log4net>
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
            <level value="INFO"/>
            <file value="Logs\Log.txt" />
            <appendToFile value="true" />
            <rollingStyle value="Size" />
            <maxSizeRollBackups value="10" />
            <maximumFileSize value="10MB" />
            <staticLogFileName value="true" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
            </layout>
        </appender>

        <root>
            <appender-ref ref="RollingFileAppender"/>
        </root>
    </log4net>
</configuration>

The code

private ILog Log { get; set; }

static Program()
{
    XmlConfigurator.Configure();
    //...
    this.Log.Info("Started in RunOnce mode.");
}
+3
source share
3 answers

I think in your root tag you need to set a property <level value="INFO">for your application.

+8
source

take a look at

http://logging.apache.org/log4net/release/sdk/log4net.Core.Level.html

It looks like it could be cuplrit

When registering at the INFO level, the Level used is not information, but the value of LoggerRepository.LevelMap ["INFO"]. The default value is Info, but you can change the reconfiguration of the level map.

+1
source

/ ILog

private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

-: ( )

<logger name="Program">
  <level value="Info"/>
  <appender-ref ref="RollingFileAppender"/>
</logger>
0
source

All Articles