Java Log4j2在回滚后始终写入同一文件

Java Log4j2在回滚后始终写入同一文件,java,logging,log4j2,Java,Logging,Log4j2,我正在试着设置日志,使其每分钟旋转一次。日期和时间戳有效,但一旦触发滚动,新条目将写入前一分钟日志文件。i、 e.它在下一分钟内没有创建新的日志文件 比如说。在第一分钟,条目被写入A2018-11-27 11:50.csv 下一分钟,它仍然会写入到2018-11-27 11:50.csv,尽管它已经创建了一个名为2018-11-27 11:50.csv.gz的滚动存档。它应该创建一个新的日志文件A2018-11-27 11:51.csv 有什么建议吗 log4j2.xml <?xml ve

我正在试着设置日志,使其每分钟旋转一次。日期和时间戳有效,但一旦触发滚动,新条目将写入前一分钟日志文件。i、 e.它在下一分钟内没有创建新的日志文件

比如说。在第一分钟,条目被写入A2018-11-27 11:50.csv 下一分钟,它仍然会写入到2018-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>

根据log4j2中的jira记录,我成功地解决了这个问题:

我将在这里发布我的工作解决方案。我使用的是log4j22.11.1

修复方法是删除文件名并在文件模式中使用%d而不是$

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