我需要控制日志框架的最大磁盘空间量。
例如,在 log4j 中,如果我有这样的附加程序,我可以轻松估计我需要多少磁盘空间:
<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,还有其他的FileAppenders可以实现这种控制吗? logback 或 log4j2 是否提供其他 FileAppenders/替代方案?
注意:我正在寻找仅配置日志记录框架的方法,没有使用 rm 命令的 crontab 等外部进程。第三方 FileAppenders 喜欢 this , this或 this欢迎。
最佳答案
Does logback or log4j2 provide other FileAppenders/alternatives
log4j2 引入了 RandomAccessFileAppender
和 RollingRandomAccessFileAppender
仍然是实验性的,可能会在未来的版本中取代 FileAppender
和 RollingFileAppender
. See here .
然而电流RollingFileAppender
需要一个 TriggeringPolicy
:
OnStartup 触发策略:OnStartup 策略不接受任何参数,如果日志文件早于当前 JVM 的启动时间,则会导致翻转。
SizeBased Triggering Policy:一旦文件达到指定大小时就会导致翻转。大小可以字节、KB、MB 或 GB 为单位指定。
基于时间的触发策略:一旦日期/时间模式不再适用于 Activity 文件,就会导致翻转。该策略接受一个“increment”属性,该属性指示基于时间模式和“modulate” boolean 属性的翻转应该发生的频率。
关于java - Log4j 和 Logback FileAppender maxFileSize 和 maxBackupIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19236038/