删除的Log4j2 Rolled Files仍处于打开状态,并且磁盘空间未释放 [英] Log4j2 Rolled Files that are deleted are still open and disk space not freed

查看:856
本文介绍了删除的Log4j2 Rolled Files仍处于打开状态,并且磁盘空间未释放的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近从tomcat6服务器上的log4j迁移到了log4j2.问题是被删除的滚动文件将永远保持打开状态,因此不会释放磁盘空间. 我使用此命令"sudo/usr/sbin/lsof | grep已删除"来检查打开的已删除文件.我似乎不明白如何在不重新启动tomcat服务器的情况下关闭这些文件. cron作业将删除其中一些日志.而其中许多通过logrotate删除.

I recently migrated from log4j to log4j2 on my tomcat6 server. The problem is that my rolling files that are deleted are remaining open forever and hence the disk space is not being freed. i used this command "sudo /usr/sbin/lsof | grep deleted" to check on the open deleted files. I don't seem to understand how to close those files without restarting the tomcat server. Some of these logs are being deleted by cron jobs. while a lot of them are being deleted via logrotate.

...

 <Appenders>
    <RollingRandomAccessFile name="requestAppender" fileName="${sys:catalina.home}/webapps/miscLogs/request.log"
                filePattern="${sys:catalina.home}/webapps/miscLogs/request.log.%i">
            <PatternLayout>
                <Pattern>
                    "%d{dd MMM yyyy HH:mm:ss } %-5p %c %x -%m%n"
                </Pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="3400MB"/>
            </Policies>
            <DefaultRolloverStrategy max="3"/>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<logger additivity="false" name="requestLogger" level="debug">
            <AppenderRef ref="requestAppender"/>
        </logger>
</Loggers>

...

问题在于已经滚动的文件.在这种情况下,问题出在request.log.3上.它由cron删除(不进行logrotate),但仍不放弃磁盘空间,并由运行整个程序的tomcat服务器保持打开状态.

The problem is with the files that have already been rolled. In this case the problem is with request.log.3. It's being deleted by a cron (no logrotate) but it's still not giving up disk space and is held open by the tomcat server on which the whole program is running.

lsof的输出如下.

the output of lsof is below..

java 6393根160u REG 8,1 3565160049 5525509/opt/tomcat/webapps/miscLogs/request.log.1(已删除)

java 6393 root 160u REG 8,1 3565160049 5525509 /opt/tomcat/webapps/miscLogs/request.log.1 (deleted)

这里的Java进程是tomcat 6服务器,它仍然保持文件打开.

here the java process is the tomcat 6 server which is still holding the file open.

推荐答案

RandomAccessFileAppender和logrotate存在一个已知问题: http://issues.apache.org/jira/browse/LOG4J2-354 ; Log4j团队建议改为使用RollingRandomAccessFileAppender.

There is a known problem with RandomAccessFileAppender and logrotate: http://issues.apache.org/jira/browse/LOG4J2-354; the Log4j team recommends using RollingRandomAccessFileAppender instead.

这篇关于删除的Log4j2 Rolled Files仍处于打开状态,并且磁盘空间未释放的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆