0
votes

I am trying to create a unique log file for each application session. Example:

  • MyApp-2014-07-08-04-36.log (1st execution)
  • MyApp-2014-07-08-06-31.log (2nd execution, so on...)

With configuration below, it creates the file. However, I have noticed sometimes it create another new file in same session. There should be one file for the duration of application session.

I used PatternConverter to update the log folder path, so the log path can be set by the user.

<configuration>
  <configSections>
    <section 
      name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <appender name="MainApplication" type="log4net.Appender.RollingFileAppender">
        <file type="log4net.Util.PatternString">
            <converter>
            <name value="folder" />
            <type value="MyApp.MainAppLogPatternConverter" />
            </converter>
            <conversionPattern value="%folder\MyApp-" />
        </file> 
      <param name="AppendToFile" value="true" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy-MM-dd-hh-mm-ss.lo\g"  />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p  %m%n" />
      </layout>
    </appender>
    <logger name="MyApp">
      <level value="DEBUG" />
      <maximumFileSize value="10MB" />
      <appender-ref ref="MainApplication" />
    </logger>
  </log4net>  
</configuration>

Advance thanks for your advice.

1

1 Answers

2
votes

Log4net will create a new filename when you read the config. If you see multiple logfiles my psychic debug powers tell me you are call log4net configure more as once when executing. Or that the file exceeds 10mb, as you have configured:

<maximumFileSize value="10MB" />