質問

We're using the log4net rolling file appender and have the following requirements for our log files:

  • A new log file at the start of each day, with the date in the filename
  • A maximum log file size of 500KB

The issue we are having is the file naming strategy when files hit 500KB: they get renamed with a .1 suffix. This is problematic as it breaks file association in Windows, so opening the files is (slightly) more of a chore.

The configuration we're using is:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="c:\log\path" />
  <staticLogFileName value="false" />
  <appendToFile value="true" />
  <rollingStyle value="Composite" />
  <datePattern value=".yyyy-MM-dd.lo\g" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <maxSizeRollBackups value="50" />
  <maximumFileSize value="500KB" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %message%newline" />
  </layout>
</appender>

Is there support for specifying the naming strategy used when our files hit the maximumFileSize?

役に立ちましたか?

解決

Version 1.2.11 of log4net includes the PreserveLogFileNameExtension property on the RollingFileAppender. Setting the property to true will allow files to be rolled in the format logName.roll#.fileExt, keeping your file associations intact.

The entry inside the appender block would look like:
<param name="PreserveLogFileNameExtension" value="true" />

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top