Log4j2.0异步记录器导致OutOfMemory Java堆空间

时间:2013-09-30 21:28:39

标签: java asynchronous logging out-of-memory log4j2

我通过设置系统来配置我公司的系统以使所有记录器都是异步的  属性Log4jContextSelectororg.apache.logging.log4j.core.async.AsyncLoggerContextSelector。我们使用log4j 2.0。

当我通过系统运行一个小输入文件时没有问题。但是当我运行一个更大的输入文件(我们的系统应该运行比这更大的文件)时,会导致OutOfMemoryError。信息如下:

SEVERE: Exception processing: 14451294 org.apache.logging.log4j.core.async.RingB  ufferLogEvent@226dc6bf
java.lang.OutOfMemoryError: Java heap space

然后我将最大堆大小增加到4 gigs(总物理内存为8G)并导致另一个问题:

SEVERE: Exception processing: 775221 org.apache.logging.log4j.core.async.RingBufferLogEvent@1c6b80a9
java.lang.OutOfMemoryError: GC overhead limit exceeded

1 个答案:

答案 0 :(得分:2)

Log4J团队意识到这一点:https://issues.apache.org/jira/browse/LOG4J2-414


更新2018-2-2:

5年前针对Log4j 2.0-beta9提出了原始问题和上述JIRA机票。

这是多年以后的事了。 Log4j2社区即将发布Log4j 2.11。自版本2.0-beta 9以来,已修复了几个内存泄漏错误。

如果有人在使用最新版本的Log4j2时遇到此问题,请提出新的JIRA票证,因为这不应该发生。