Java Log4j2 RollingFile:在当前日志文件中使用今天的日期(刷新文件名)

Java Log4j2 RollingFile:在当前日志文件中使用今天的日期(刷新文件名),java,log4j2,Java,Log4j2,我有一个使用log4j的web服务,并将其升级为使用log4j2,这样我就可以利用log4j2可以为您删除旧的日志文件,而log4j不能 日志存储在模式/my\u log\u root/yyyyMMdd/myservice.log中。相关的log4j.properties配置如下所示: log4j.appender.RollingAppender=org.apache.log4j.rolling.RollingFileAppender log4j.appender.RollingAppender

我有一个使用log4j的web服务,并将其升级为使用log4j2,这样我就可以利用log4j2可以为您删除旧的日志文件,而log4j不能

日志存储在模式/my\u log\u root/yyyyMMdd/myservice.log中。相关的log4j.properties配置如下所示:

log4j.appender.RollingAppender=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.RollingAppender.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.RollingAppender.RollingPolicy.FileNamePattern=/my_log_root/%d{yyyyMMdd}/myservice.log
property.basePath = /my_log_root/

appender.rolling.type = RollingFile
appender.rolling.fileName= ${basePath}/${date:yyyyMMdd}/myservice.log
appender.rolling.filePattern= ${basePath}/%d{yyyyMMdd}/myservice.log

appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.delete.type = Delete
appender.rolling.strategy.delete.basePath = ${basePath}
appender.rolling.strategy.delete.maxDepth = 3
appender.rolling.strategy.delete.ifLastModified.type = IfLastModified
appender.rolling.strategy.delete.ifLastModified.age = 30d
除了从未删除过旧的日志文件外,这种方法工作得很好。现在在log4j2中,属性文件如下所示:

log4j.appender.RollingAppender=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.RollingAppender.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.RollingAppender.RollingPolicy.FileNamePattern=/my_log_root/%d{yyyyMMdd}/myservice.log
property.basePath = /my_log_root/

appender.rolling.type = RollingFile
appender.rolling.fileName= ${basePath}/${date:yyyyMMdd}/myservice.log
appender.rolling.filePattern= ${basePath}/%d{yyyyMMdd}/myservice.log

appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.delete.type = Delete
appender.rolling.strategy.delete.basePath = ${basePath}
appender.rolling.strategy.delete.maxDepth = 3
appender.rolling.strategy.delete.ifLastModified.type = IfLastModified
appender.rolling.strategy.delete.ifLastModified.age = 30d
使用此属性文件,旧的日志文件将被删除(空目录将保留,但这并不太糟糕)

唯一的问题是当前天数日志。似乎log4j2在计算完文件名后从未刷新文件名。例如,当我在2019-06-21重新启动该服务时,它将文件正确写入/my_log_root/20190621/myservice.log。然而,几天后,它仍在将当前日志写入/my_log_root/20190621/myservice.log。在一天结束时,它会将日志旋转到相应的日期目录,然后开始将新日志写入21

是否可以让log4j2每天刷新其当前日志位置,或者它不支持此操作