0

I have setup log4Net to create separate file for each day. But its creating multiple files for same day, please see below.

enter image description here

Below is my app.config, am I doing something wrong here?

<log4net>
    file appender
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <maxSizeRollBackups value="30" />
      <maximumFileSize value="15MB" />
      <datePattern value="dd.MM.yyyy'.log'" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingFileAppender" />
    </root>
  </log4net>
mrTester
  • 235
  • 2
  • 10

3 Answers3

1

This worked for me -

<log4net>
  <root>
    <appender-ref ref="FileAppender" />
    <appender-ref ref="ErrorAppender" />
  </root>
  <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <file value="logs\\logfile" />
    <staticLogFileName value="false" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <maxSizeRollBackups value="128" />
    <maximumFileSize value="10MB" />
    <datePattern value="_MM-dd-yyyy" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="DEBUG" />
      <levelMax value="WARN" />
    </filter>
  </appender>
  <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <file value="logs\\logfile" />
    <staticLogFileName value="false" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <maxSizeRollBackups value="128" />
    <maximumFileSize value="10MB" />
    <datePattern value="_MM-dd-yyyy" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline  type: %type%newline  method: %method%newline%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="ERROR" />
      <levelMax value="FATAL" />
    </filter>
  </appender>
</log4net>
karthiks3000
  • 842
  • 8
  • 12
0

I think you should set your Rolling Style value to use 'Size' instead of 'Date'

 <rollingStyle value="Size" />
  • 1
    But I need one file per day so I think it needs to be set as Date. [See this](https://stackoverflow.com/questions/10349536/having-a-log-per-day) – mrTester Jan 24 '18 at 17:42
0

Your issue is the max file size configured to 15MB. See <maximumFileSize value="15MB" />. You should change that configuration to a larger file size if you want a single file for the whole day.

The configuration defaults to 10MB if you remove the config altogether.

This can cause an extremely large file if everything is in a single file, unless your traffic/load is uniform.

Babak Naffas
  • 12,395
  • 3
  • 34
  • 49