log4j2 - 以编程方式更改RollingFileAppender的最大文件大小

时间:2015-12-09 04:32:55

标签: java log4j log4j2

我使用的是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并用新的替换它。有谁知道更简单的解决方案?

1 个答案:

答案 0 :(得分:0)

答案是,在Log4j 2.3中你无法做我想做的事情。这个错误修复解决了这个问题:

Changes in SizeBasedTriggeringPolicy has no effects when automatic reconfiguration is on.

该修复程序将与log4j 2.5一起发布,遗憾的是,它需要Java 1.7。