【发布时间】:2015-01-30 12:25:46
【问题描述】:
当 Log4j2 滚动我的日志文件时,它会使其中一些文件保持打开状态,我可以在 lsof 中看到:
java 6684 root 609u REG 8,3 5791 142217 /jboss/server/all/log/info.log.2015-01-30 12:48-2.log(已删除) java 6684 root 613r REG 8,3 2917 140533 /jboss/server/all/log/info.log.2015-01-30 12:45-1.log(已删除) java 6684 root 621u REG 8,3 78090 140536 /jboss/server/all/log/service.manager.log.2015-01-30 12:46-1.log(已删除) java 6684 root 622u REG 8,3 309 140541 /jboss/server/all/log/info.log.2015-01-30 12:46-1.log(已删除) java 6684 root 623u REG 8,3 309 140539 /jboss/server/all/log/node.log.2015-01-30 12:46-1.log(已删除) java 6684 root 644r REG 8,3 126606 140228 /jboss/server/all/log/info.log.2015-01-30 12:44-1.log(已删除) java 6684 root 648r REG 8,3 70026 135612 /jboss/server/all/log/node.log.2015-01-30 12:44-1.log(已删除) java 6684 root 649r REG 8,3 126606 140202 /jboss/server/all/log/service.manager.log.2015-01-30 12:44-1.log(已删除) java 6684 root 652r REG 8,3 2917 140530 /jboss/server/all/log/node.log.2015-01-30 12:45-1.log(已删除) java 6684 root 653r REG 8,3 113366 140526 /jboss/server/all/log/service.manager.log.2015-01-30 12:45-1.log(已删除) java 6684 root 654u REG 8,3 322 140543 /jboss/server/all/log/service.manager.log.2015-01-30 12:47-1.log(已删除)这是我的配置文件之一:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace">
<Appenders>
<RollingRandomAccessFile name="PCI" fileName="${sys:jboss.server.home.dir}}/log/mycast.pci.log"
filePattern="${sys:jboss.server.home.dir}}/log/mycast.pci.log.%d{yyyy-MM-dd HH:mm}-%i.log.gz">
<param name="Threshold" value="trace" />
<PatternLayout>
<Pattern>%d %-5p [%c{1}] (%t) {%x}: %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="32 MB"/>
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Logger name="com.abc" level="trace">
<AppenderRef ref="PCI" />
</Logger>
</Loggers>
</Configuration>
我按照Log4j2 Rolled Files that are deleted are still open and disk space not freed 中的建议尝试了 RollingRandomAccessFileAppender,但我得到了:
RollingRandomAccessFileAppender: CLASS_NOT_FOUND
有没有办法告诉 Log4j2 在滚动之前或一段时间不使用之后关闭文件?我应该使用其他滚筒吗?
谢谢
【问题讨论】:
-
RollingFile appender 有同样的问题吗?这可能是另一种选择。
-
是的,我试过了,RollingFile 也让它们保持打开状态。