java - Log4j 和 Logback FileAppender maxFileSize 和 maxBackupIndex

标签 java log4j logback log4j2 fileappender

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

最佳答案

Does logback or log4j2 provide other FileAppenders/alternatives

log4j2 引入了 RandomAccessFileAppenderRollingRandomAccessFileAppender 仍然是实验性的,可能会在未来的版本中取代 FileAppenderRollingFileAppender . 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/

相关文章:

java - Android:共享首选项。如何正确实现它们

java - 提交响应后是否可以从 servlet 过滤器转发或重定向?

java - 使用项目名称访问主页

log4j - OSGi 的类加载问题

java - 在使用自定义 AppenderBase 类的 Logback 中以及如何将通知发送回 Swing gui

java - eclipselink (JPA) 异常 : composite primary key @JoinColumn

java - 如何修复此问题(对象 : List){}

logging - 是否可以在运行时更改 AWS Lambda 的日志级别?

Spring Boot jetty/tomcat 内嵌访问日志配置

java - Spring Boot 应用程序发出的日志中的一组值的含义是什么?