是否可以将Log4net配置为清除日志文件但不是白天?

时间:2017-03-16 13:28:20

标签: c# log4net

现在我有以下配置:

 <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="c:\temp\log.txt" />
    <appendToFile value="true" />
    <maximumFileSize value="2MB" />
    <maxSizeRollBackups value="100" />
    <lockingModel type="log4net.Appender.FileAppender+MutexLock" />
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="DEBUG" />
      <levelMax value="FATAL" />
    </filter>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="[%thread]; %-5level; %date{yyyy-dd-MM HH:mm:ss.fff}; [%logger]; %message; %newline"/>
    </layout>
  </appender>

使用此配置,我获得了大量日志文件(白天100个日志文件),例如:

DAY 20:
log.txt.2016-07-20.1
log.txt.2016-07-20.2
...
log.txt.2016-07-20.100

DAY 21:
log.txt.2016-07-21.1
log.txt.2016-07-21.2
...
log.txt.2016-07-21.100

我想控制文件总共100个文件,而不是白天100个文件。我怎么能像这样控制?

1 个答案:

答案 0 :(得分:1)

您尚未指定RollingStyle,因此默认为RollingMode.Composite

  

复合:根据文件的大小和日期滚动文件

这就是您每天获得maxSizeRollBackups的原因,因为默认日期翻转是每天一次。

您只想按大小而不是日期滚动,因此您应该将其添加到appender配置中:

<rollingStyle value="Size" />

config examples for RollingFileAppender

中有更详细的内容