log4net不重命名现有的生成日志文件

时间:2014-07-23 18:27:13

标签: c# log4net

如何配置log4net appender以登录默认日志文件名,并在当前日志文件达到其定义的限制时生成日志文件,但保留现有的生成日志文件。

示例(日志追加器记录到log.log

log.log log.1.log log.2.log

log.log达到其大小限制,我想要的是将log.log重命名为log.3.log,而不是log.1.log(而log.1.log变为log.2.log,并且log.2.log成为log.3.log)。

我以为我可以使用StaticLogFileName属性实现此目的,但似乎并非如此。

当前的追加者:

<appender name="ContextLogAppender" type="log4net.Appender.RollingFileAppender">
    <file value="C:\IAI\Logs\ContextLog\context_log.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="100" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true"/>
    <PreserveLogFileNameExtension value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <header value="%newline===[SOFTWARE STARTUP AT  %date]===%newline" type="log4net.Util.PatternString" />
      <footer value="%newline===[SOFTWARE SHUTDOWN]===%newline%newline" type="log4net.Util.PatternString" />
      <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss,fff} [%-5level][thread: %thread][%logger] %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelMatchFilter">
      <levelToMatch value="PRODUCTION" />
    </filter>
  </appender>

1 个答案:

答案 0 :(得分:2)

找到设置,可以使用countDirection配置方向。

  <appender name="ContextLogAppender" type="log4net.Appender.RollingFileAppender">
    <file value="C:\IAI\Logs\ContextLog\context_log.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="100" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true"/>

    *<countDirection value="1"/>*
  • countDirection < 0将导致日志文件1重命名为日志文件2.
  • countDirection > 0将导致日志文件保留其文件名,以及最新生成的日志文件,其编号最大。
相关问题