log4net RollingFileAppender 喷出大量日志,maxSizeRollBackups 没有效果

本文关键字:maxSizeRollBackups 有效果 日志 RollingFileAppender log4net | 更新日期: 2023-09-27 18:36:46

我拥有的服务突然喷出大量日志文件,并且不限制写入的文件数量。日志(有点)命名为MyService.2015-01-08.1,MyService.2015-01-08.2,MyService.2015-01-08.3等,一直到目前218。我想将其限制为每天 10 次,而不是像现在这样无限。以下是之前的日志配置:

<appender name="RollingFileAppender" type="Ourlib.Logging.CustomRollingFileAppender">
  <file value="c:'logs'myservice" />
  <appendToFile value="true" />
  <rollingStyle value="Composite" />
  <staticLogFileName value="false" />
  <maxSizeRollBackups value="-1" />
  <countDirection value="1" />
  <maximumFileSize value="5000KB" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%utcdate [%thread] %-5level %property{CorrelationId} %property{CallPath} %logger{2} - %message%newline" />
  </layout>
</appender>

我做了一些更改,如下所示。值得注意的是,我将maxSizeRollBackups设置为 10,我认为这会解决问题,但似乎没有区别。

<appender name="RollingFileAppender" type="Ourlib.Logging.CustomRollingFileAppender">
  <file value="c:'logs'myservice" />
  <appendToFile value="true" />
  <rollingStyle value="Composite" />
  <staticLogFileName value="false" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="5000KB" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%utcdate [%thread] %-5level %property{CorrelationId} %property{CallPath} %logger{2} - %message%newline" />
   </layout>
</appender>

更改已部署,但仍在创建新的日志文件,远远超过新设置的 10。

假设我的部署正确完成,可能出现什么问题?我是否误解了我更改的配置属性,或者这里还有其他事情发生?

谢谢大家!

log4net RollingFileAppender 喷出大量日志,maxSizeRollBackups 没有效果

尝试添加 DatePattern 并将 maxSizeRollBackups 值的更改保留为 10,如下所示

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
     <file value="c:'logs'myservice" />
     <appendToFile value="true" />
     <rollingStyle value="Composite" />
     <datePattern value=".yyyy-MM-dd" />
     <maxSizeRollBackups value="10" />
     <maximumFileSize value="5000KB" />
     <countDirection value="1"/>
     <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
     </layout>
</appender>

这是一个复合滚动文件追加程序,每天最多保留 10 个 5000KB 日志备份

试试这个:

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  <file value=".'App.log" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <appendToFile value="true" />
  <maximumFileSize value="10MB" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
  </layout>
</appender>

再比如:

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  <file value=".'Logs'" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <staticLogFileName value="false" />
  <rollingStyle value="Date" />
  <datePattern value="'On_'yyyy-MM-dd'.log'" />
  <appendToFile value="true" />
  <maximumFileSize value="10MB" />
  <maxSizeRollBackups value="10" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
  </layout>
</appender>

如果您必须使用自定义的,那么我想缺少的是:

  1. 文件值属性 ( <file value="c:'logs'myservice'" /> ) 末尾的重击。
  2. 复合文件定义,除非自定义追加程序已经这样做。
  3. 使用lockingModel,如果你没有BufferedAppender在前面。
相关文章:
  • 没有找到相关文章