Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j2-以编程方式更改RollingFileAppender的最大文件大小_Java_Log4j_Log4j2 - Fatal编程技术网

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

Java log4j2-以编程方式更改RollingFileAppender的最大文件大小,java,log4j,log4j2,Java,Log4j,Log4j2,我使用的是log4j2.3,而不是最新的2.x版本,因为我的代码需要在Java1.6上运行。不管怎样,我正在以编程方式配置所有内容。使用RollingFileAppender.createAppender创建RollingFileAppender时,我将作为策略参数传入: SizeBasedTriggeringPolicy.createPolicy("10MB"); 到目前为止,一切顺利。但我需要能够在运行时通过编程更改最大文件大小。我可以用log4j1.2.x来完成,因为我的RollingF

我使用的是log4j2.3,而不是最新的2.x版本,因为我的代码需要在Java1.6上运行。不管怎样,我正在以编程方式配置所有内容。使用RollingFileAppender.createAppender创建RollingFileAppender时,我将作为策略参数传入:

SizeBasedTriggeringPolicy.createPolicy("10MB");

到目前为止,一切顺利。但我需要能够在运行时通过编程更改最大文件大小。我可以用log4j1.2.x来完成,因为我的RollingFileAppender有一个setMaxFileSize()方法。但是在2.3中,RollingFileAppender的triggerPolicy字段是只读的,并且确定最大文件大小的SizeBasedTriggeringPolicy似乎是不可变的。我能看到的唯一可行的方法是删除appender并用新的appender替换它。有人知道更简单的解决方案吗

答案是,在Log4j 2.3中,你不能做我想做的事情。此错误修复程序解决了这一问题:


该修复程序将随log4j 2.5一起发布,不幸的是,log4j 2.5需要Java 1.7。

请检查@fuzzy28——这个问题是关于log4j1.2.x的。我的大约是2.x。2.x基本上是一个不兼容的底层重写。这不是同一个问题。