我需要控制日志框架的最大磁盘空间量 例如,在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,例如this,this或this。
答案 0 :(得分:3)
logback或log4j2是否提供其他FileAppenders / alternative
log4j2引入了RandomAccessFileAppender
和RollingRandomAccessFileAppender
仍然是实验性的,可能在将来的版本中替换FileAppender
和RollingFileAppender
。 See here
但是,当前RollingFileAppender
需要TriggeringPolicy
:
OnStartup触发策略:如果日志文件早于当前JVM的开始时间,则OnStartup策略不带参数并导致翻转。
基于大小的触发策略:文件达到指定大小后导致翻转。大小可以以字节,KB,MB或GB指定。
基于时间的触发策略:一旦日期/时间模式不再适用于活动文件,就会导致翻转。此策略接受“增量”属性,该属性指示基于时间模式和“调制”布尔属性进行翻转的频率。