java Log4j和Logback FileAppender maxFileSize和maxBackupIndex
我需要控制日志框架的最大磁盘空间量
例如,在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
我注意到DailRollingFileAppender,但它不支持maxFileSize
除了RollingFileAppender,还有其他FileAppender可以实现这种控制吗? logback或log4j2是否提供其他文件附加器/替代方案
注意:我只是在寻找配置日志框架的方法,而不是像crontab这样使用rm命令的外部进程。欢迎使用this、this或this等第三方文件附加程序
# 1 楼答案
log4j2引入了仍处于实验阶段的
RandomAccessFileAppender
和RollingRandomAccessFileAppender
,可能在未来的版本中取代FileAppender
和RollingFileAppender
See here然而,当前的^{} 需要
TriggeringPolicy
:OnStartup触发策略:OnStartup策略不接受任何参数,如果日志文件早于当前JVM的启动时间,则会导致滚动
基于大小的触发策略:一旦文件达到指定大小,就会导致滚动。大小可以以字节、KB、MB或GB为单位指定
基于时间的触发策略:一旦日期/时间模式不再适用于活动文件,就会导致滚动。该策略接受一个“增量”属性,该属性根据时间模式和一个“调制”布尔属性指示滚动发生的频率