gpt4 book ai didi

java - Log4j2 回滚后始终写入同一个文件

转载 作者:行者123 更新时间:2023-12-02 10:32:54 25 4
gpt4 key购买 nike

我正在尝试设置日志,使其每分钟轮换一次。日期和时间戳有效,但一旦触发翻转,新条目将写入前一分钟的日志文件中。即它没有在下一分钟创建新的日志文件。

例如。在第一分钟,条目写入 A2018-11-27 11:50.csv在下一分钟,它仍然写入 A2018-11-27 11:50.csv,即使它已经创建了一个名为 2018-11-27 11:50.csv.gz 的滚动存档。它应该创建一个新的日志文件 A2018-11-27 11:51.csv。

有什么建议吗?

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" monitorInterval="30">
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
<Appenders>
<RollingFile name="HR0" fileName="../logs/m/A${date:yyyy-MM-dd hh:mm}.csv" filePattern="../logs/m/AAA ${date:yyyy-MM-dd hh:mm}.csv">
<CronTriggeringPolicy schedule="0 * * * * ?" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
<Logger name="HR0" additivity="false" level="info">
<AppenderRef ref="HR0" />
</Logger>
</Configuration>

一些Javafile.java

public class someJavafile {
private final Logger itsLoggerHR0 = LogManager.getLogger("HR0");
itsLoggerHR0.info("AAA");
}

最佳答案

我根据 log4j2 的 jira 票证设法弄清楚了这一点: https://issues.apache.org/jira/browse/LOG4J2-1185

我将在这里发布我的工作解决方案。我正在使用 log4j2 2.11.1

修复方法是删除“fileName”并在 filePattern 中使用 %d 而不是 $

<RollingFile name="HR0" filePattern="../logs/measure/%d{yyyy-MM-dd hh:mm}.csv">
<CronTriggeringPolicy schedule="0 * * * * ?" />
</RollingFile>

关于java - Log4j2 回滚后始终写入同一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53504609/

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