gpt4 book ai didi

java - log4j2 RollingFile Appender 不更改 Tomcat 上的文件名?

转载 作者:行者123 更新时间:2023-11-30 10:45:27 28 4
gpt4 key购买 nike

我有一个使用 log4j2 的网络应用程序。应每天创建日志。

问题:旧文件的内容永远不会被删除,但任何新的一天都会附加到该文件。所以它不断增长。在 tomcat8 上运行时,以下配置通常是否正确?

log4j2.xml:

<Configuration>
<Appenders>
<RollingFile name="TEST" fileName="d:\test-application.txt" filePattern="d:\test-application-%d{yyyy-MM-dd}.log">
<Policies>
<TimeBasedTriggeringPolicy modulate="true"/>
</Policies>
//...
<RollingFile>
//...
</Appenders>
//...
</Configuration>

专家:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

最佳答案

您不是第一个报告此行为的人,共同因素似乎是 Windows。 Log4j 尝试重命名该文件。如果失败,它会尝试复制和删除,然后删除该文件。如果文件上有锁,重命名将失败,然后很可能复制成功但删除失败。但是代码仍然使用 File 对象的 delete 方法,它不擅长报告错误,而且 Log4j 不检查返回值,因此它会静默失败。

此行为是一个错误,应该修复,但它不会真正解决您的问题 - 它只会让您知道。要修复它,您需要找出阻止重命名成功的原因。

关于java - log4j2 RollingFile Appender 不更改 Tomcat 上的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978672/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com