有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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命令的外部进程。欢迎使用thisthisthis等第三方文件附加程序


共 (1) 个答案

  1. # 1 楼答案

    Does logback or log4j2 provide other FileAppenders/alternatives

    log4j2引入了仍处于实验阶段的RandomAccessFileAppenderRollingRandomAccessFileAppender,可能在未来的版本中取代FileAppenderRollingFileAppenderSee here

    然而,当前的^{}需要TriggeringPolicy

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

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

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