Java 在log4j中使用RollingFileAppender时,如何删除日志文件?

Java 在log4j中使用RollingFileAppender时,如何删除日志文件?,java,logging,log4j2,Java,Logging,Log4j2,有时,在滚动日志文件时,似乎会出现一些问题,如:“无法删除日志文件”、“无法移动日志文件” Error: java.nio.file.FileSystemException a.log -> directory\a-2011-08-09-2.log: The process cannot access the file because it is being used by another process. 以下是log4j配置: <RollingFile name="a" fil

有时,在滚动日志文件时,似乎会出现一些问题,如:“无法删除日志文件”、“无法移动日志文件”

Error: java.nio.file.FileSystemException a.log -> directory\a-2011-08-09-2.log: The process cannot access the file because it is being used by another process.
以下是log4j配置:

<RollingFile name="a" fileName="${sys:catalina.base}/logs/a.log" append="true" createOnDemand="true" filePattern="${sys:catalina.base}/logs/a-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout>
                <Pattern>%d{ISO8601}|%-5p|%i|%T|%s|%R|%t|%c{1} - %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <DefaultRolloverStrategy max="25"/>
        </RollingFile>

%d{ISO8601}|%-5p}%i}%T}%s}%R}%T}%c{1}-%m%n

我知道catalina.out由tomcat保持打开状态,因此logrotate需要使用CopyControl标志,但我不确定这是否与您的问题有关。您在路径中使用了正斜杠。你在Windows上运行吗?您是否尝试过关闭AV一段时间来排除AV?@kichik什么是AV?AV是像Symantec或McAfee一样的反病毒。这会对这个问题产生什么影响?我知道catalina.out由tomcat保持打开,因此logrotate需要使用CopyContruncate标志,但我不确定这是否与你的问题有关,你在路径中使用了正斜杠。你在Windows上运行吗?你有没有试过关闭一段时间来排除你的AV?@kichik什么是AV?AV像赛门铁克或McAfee一样是反病毒的。这会对这个问题产生什么影响?