log4j2 - 以编程方式更改 RollingFileAppender 的最大文件大小
log4j2 - programmatically change max file size of RollingFileAppender
我使用的是 Log4j 2.3,而不是最新的 2.x 版本,因为我的代码需要在 Java 1.6 上 运行。无论如何,我正在以编程方式配置所有内容。当我使用 RollingFileAppender.createAppender 创建 RollingFileAppender 时,我作为策略参数传入:
SizeBasedTriggeringPolicy.createPolicy("10MB");
到目前为止,还不错。但我需要能够在 运行 时间以编程方式更改最大文件大小。我可以用 log4j 1.2.x 做到这一点,因为我的 RollingFileAppender 有一个 setMaxFileSize() 方法。但是在2.3中,RollingFileAppender的triggerPolicy字段是只读的,决定最大文件大小的SizeBasedTriggeringPolicy似乎是不可变的。我能看到的唯一可行的方法是删除 appender 并将其替换为新的。有谁知道更简单的解决方案?
答案是,在 Log4j 2.3 中你不能做我想做的事情。此错误修复解决了此问题:
Changes in SizeBasedTriggeringPolicy has no effects when automatic reconfiguration is on.
修复将与 log4j 2.5 一起发布,不幸的是,这对我来说需要 Java 1.7。
我使用的是 Log4j 2.3,而不是最新的 2.x 版本,因为我的代码需要在 Java 1.6 上 运行。无论如何,我正在以编程方式配置所有内容。当我使用 RollingFileAppender.createAppender 创建 RollingFileAppender 时,我作为策略参数传入:
SizeBasedTriggeringPolicy.createPolicy("10MB");
到目前为止,还不错。但我需要能够在 运行 时间以编程方式更改最大文件大小。我可以用 log4j 1.2.x 做到这一点,因为我的 RollingFileAppender 有一个 setMaxFileSize() 方法。但是在2.3中,RollingFileAppender的triggerPolicy字段是只读的,决定最大文件大小的SizeBasedTriggeringPolicy似乎是不可变的。我能看到的唯一可行的方法是删除 appender 并将其替换为新的。有谁知道更简单的解决方案?
答案是,在 Log4j 2.3 中你不能做我想做的事情。此错误修复解决了此问题:
Changes in SizeBasedTriggeringPolicy has no effects when automatic reconfiguration is on.
修复将与 log4j 2.5 一起发布,不幸的是,这对我来说需要 Java 1.7。