Log4net RollingFileAppender是覆盖文件且未在末尾附加数字

时间:2019-02-07 17:32:13

标签: .net vb.net log4net log4net-configuration rollingfileappender

我在具有RollingFileAppender的应用程序中使用log4net。我将rollingStyle设置为“ Composite”,并将staticLogFileName设置为“ false”,但是当达到maximumFileSize时,它将覆盖当前文件,而不是在末尾附加1。下面是我的配置代码:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <root>
    <level value="INFO" />
    <appender-ref ref="console" />
    <appender-ref ref="RollingFileAppender"/>
  </root>
  <appender name="console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %level %logger - %message%newline" />
    </layout>
  </appender>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logs\" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <datePattern value="yyyyMMdd'.log'" />
    <staticLogFileName value="false" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <maximumFileSize value="10KB" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %level %logger - %message%newline" />
    </layout>
  </appender>
</log4net>

当一天结束时,日期部分可以正常工作,但是我无法弄清为什么文件大小不正确。请注意,10kb的大小仅用于测试功能,在生产中会更大。

有人可以帮忙吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您尚未配置maxSizeRollBackups,默认情况下为0,因此将没有备份文件,并且到达maximumFileSize时日志文件将被截断。

配置为

<maxSizeRollBackups value="10" />

请注意,值为10的yyyyMMdd DatePattern每天将保留10个文件。