2013-09-30 58 views
3

我通過將系統 屬性Log4jContextSelector設置爲org.apache.logging.log4j.core.async.AsyncLoggerContextSelector來將我公司的系統配置爲使所有記錄器異步。我們使用log4j 2.0。Log4j2.0異步記錄器導致OutOfMemory Java堆空間

有沒有問題,當我通過運行系統中的小輸入文件。但是當我運行一個更大的輸入文件(我們的系統應該運行比這更大的文件)時,會導致OutOfMemoryError。信息如下:

SEVERE: Exception processing: 14451294 org.apache.logging.log4j.core.async.RingB [email protected] 
java.lang.OutOfMemoryError: Java heap space 

然後我增加最大堆大小,以4場音樂會(總物理內存爲8G),另一個問題引起的:

SEVERE: Exception processing: 775221 [email protected] 
java.lang.OutOfMemoryError: GC overhead limit exceeded 
+0

是ü審覈什麼?如果可能,你可以發佈一個示例代碼嗎? – chaosguru

回答

2

log4j的團隊意識到了這一點: https://issues.apache.org/jira/browse/LOG4J2-414


更新2018年2月2日:

原來的問題和以上JIRA票據是在5年前針對Log4j 2.0-beta9提出的。

這是很多年以後。 Log4j2社區即將發佈Log4j 2.11。從版本2.0-β9.

如果有人遇到了這個問題,最近的版本Log4j2的請舉手。一個新的JIRA票,因爲這不應該發生的幾個內存泄漏缺陷已得到修復。