4

我需要控制日志框架的最大磁盘空间量。
例如,在 log4j 中,如果我有这样的 appender,我可以轻松估计需要多少磁盘空间:

<appender name="appender" class="org.apache.log4j.RollingFileAppender"> 
    <param name="file" value="example.log"/>
    <param name="MaxFileSize" value="100KB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%p %t %c - %m%n"/> 
    </layout> 
</appender>

使用 maxFileSize 和 maxBackupIndex 我知道我最多需要 10x100KB。
我注意到 DailyRollingFileAppender 但它不支持 maxFileSize。

除了 RollingFileAppender 之外,还有其他 FileAppender 可以实现这种控制吗?logback 或 log4j2 是否提供其他 FileAppenders/alternatives?

注意:我正在寻找仅配置日志框架的方法,没有像 crontab 这样的外部进程和 rm 命令。像这样的第 3 方 FileAppenders ,这个这个是受欢迎的。

4

1 回答 1

4

logback 或 log4j2 是否提供其他 FileAppenders/alternatives

log4j2 引入RandomAccessFileAppender并且RollingRandomAccessFileAppender仍处于试验阶段,可能会FileAppenderRollingFileAppender未来的版本中取代。见这里

然而,电流RollingFileAppender需要TriggeringPolicy

  • OnStartup 触发策略:如果日志文件早于当前 JVM 的启动时间,则 OnStartup 策略不接受任何参数并导致翻转。

  • 基于大小的触发策略:一旦文件达到指定大小,就会导致翻转。大小可以以字节、KB、MB 或 GB 为单位指定。

  • 基于时间的触发策略:一旦日期/时间模式不再适用于活动文件,就会导致翻转。此策略接受一个“增量”属性,该属性指示基于时间模式的翻转应该发生的频率和一个“调制”布尔属性。

于 2013-10-08T00:16:20.173 回答