log4net RollingFileAppender文件名时间戳

时间:2015-04-06 17:18:38

标签: logging log4net log4net-configuration log4net-appender

我们正在用log4Net替换自定义构建的日志记录组件。目前,我们的日志文件基于大小滚动,但在创建新日志时在文件名中包含日期/时间戳。

例如; 应用2015-04-06-130733.log

当此日志文件达到可配置的大小时,假设为10MB,将创建一个带有新日期/时间戳的新文件。

我已经搜索过网络,论坛,log4net文档等,并且无法在log4net配置中找到实现此目的的方法。

这是我最新的log4net配置文件:

<log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" type="log4net.Util.PatternString" value="%property{ProgramDataLogDir}\Application-.log"/>
      <param name="AppendToFile" value="false"/>
      <param name="RollingStyle" value="Composite"/>
      <param name="DatePattern" value="yyyy-MM-dd" />
      <param name="MaxSizeRollBackups" value="-1"/>
      <param name="MaximumFileSize" value="10MB"/>
      <param name="StaticLogFileName" value="false"/>
      <param name="preserveLogFileNameExtension" value="true" />
      <threshold value="DEBUG"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%property{ThreadID} %d{MM/dd/yy HH:mm:ss.fff} %property{DebugLevel} %property{ComputerName} %property{ProcessName} [%t] %c %m%n" />
      </layout>
    </appender>

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

  </log4net>

这会导致使用Application-2015-04-06.log创建日志文件,当达到10MB阈值时,会在日期之后使用.1,.2,.3等创建新文件。

应用程序2015-04-06.1.log

应用程序2015-04-06.2.log

应用程序2015-04-06.3.log

如果我可以将.1,.2,.3等更改为日期戳HHmmss,这将是完美的。

此外,每次启动应用程序时,我都需要启动一个全新的文件。如果我可以实现类似于Application-2015-04-06-130733.log的格式,它也应该处理这种情况。

总结:

1。)文件按大小滚动。

2.。)每次创建新文件时,无论是应用程序启动时还是按大小滚动,文件名都应包含新的日期/时间戳。

应用程序2015-04-06-130733.log

谢谢!

0 个答案:

没有答案