Log4j日志轮换泄漏已删除文件中的磁盘空间

时间:2018-02-05 05:25:55

标签: java logging memory-leaks diskspace rollingfileappender

每当log4j2的RollingFileAppender在我的Web服务器上旋转日志文件时(当新的一天写入第一个条目时),可用磁盘空间会大大缩小。

我使用log4j-1.2.17.jar。

lsof显示已删除的文件,由于我的java进程正在使用它们,因此无法释放这些文件。

例如,文件FOP.log被旋转到FOP.log.2016-04-13.gz,这显然运作良好,但现在

[crauser@localhost logs]$ lsof | grep "/" | grep deleted
java      3204 crauser    1w      REG              253,0  10486278 1054558 /home/crauser/cra.decap/decap.interface/logs/cra_decap_consumer.log.5 (deleted)
java      3204 crauser    2w      REG              253,0  10486278 1054558 /home/crauser/cra.decap/decap.interface/logs/cra_decap_consumer.log.5 (deleted)

显示文件FOP.log.2016-04-13的270倍(没有gz后缀)。

这些未删除的文件占用了几GB的磁盘空间。

一旦我杀了java进程,这些文件就消失了,但是通过kill进程重新启动不是一个选项。

有没有办法防止此文件句柄泄漏?

0 个答案:

没有答案