Log4j和Logback FileAppender maxFileSize和maxBackupIndex

时间:2013-10-07 22:39:22

标签: java log4j logback log4j2 fileappender

我需要控制日志框架的最大磁盘空间量 例如,在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 / alternative?

注意:我正在寻找仅配置日志框架的方法,没有像rron命令的crontab这样的外部进程。欢迎第三方FileAppenders,例如thisthisthis

1 个答案:

答案 0 :(得分:3)

  

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

log4j2引入了RandomAccessFileAppenderRollingRandomAccessFileAppender仍然是实验性的,可能在将来的版本中替换FileAppenderRollingFileAppenderSee here

但是,当前RollingFileAppender需要TriggeringPolicy

  • OnStartup触发策略:如果日志文件早于当前JVM的开始时间,则OnStartup策略不带参数并导致翻转。

  • 基于大小的触发策略:文件达到指定大小后导致翻转。大小可以以字节,KB,MB或GB指定。

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