Search code examples
c#.netlog4net-configuration

Cannot Find Property [rollingStyle] to set object on [log4net.Appender.FileAppender]


I have an app.config file with log4net configured. But My files are not getting created. Inside the logger, It shows Error.

 <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <logger name="ApplicationLogger">
      <appender-ref ref="XmlAppender" />
      <level value="ALL" />
    </logger>
    <appender name="XmlAppender" type="log4net.Appender.FileAppender">
      <file type="log4net.Util.PatternString" value="C:\MyApplication\Logs\%property{LogName}.log" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value=".yyyyMMdd-HHmm" />
      <maxSizeRollBackups value="10000" />
      <maximumFileSize value="1MB" />
      <countDirection value="1"/>
      <immediateFlush value="true" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message%n" />
      </layout>
    </appender>
</log4net>

My C# Code is as follows:

public void LogMsg(string msg)
{
    try
    {
        strLogFileName = GetFileName();
        log4net.Repository.ILoggerRepository loggerRepository =         
        LogManager.CreateRepository(strLogFileName + "Repository");
        ThreadContext.Properties["LogName"] = strLogFileName;
        log4net.Config.XmlConfigurator.Configure(loggerRepository);
    }
    catch (Exception ex) { }
    logger = LogManager.GetLogger(strLogFileNameECU + "Repository", "ApplicationLogger");
    logger.Error(msg);
}

Please Tell me where I went wrong.


Solution

  • for rolling file, you should use log4net.Appender.RollingFileAppender, here is a config demo

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="log/log" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value="_yyyy-MM-dd.\t\x\t" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="1MB" />
        <staticLogFileName value="false"/>
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
      </appender>