Java 更改名称模式后未生成Log4j2日志文件

Java 更改名称模式后未生成Log4j2日志文件,java,log4j,log4j2,Java,Log4j,Log4j2,我正在尝试创建包含生成日期的动态名称的日志文件 我有以下log4j2.properties文件: status = error name = PropertiesConfig property.filename = C:\\logs\\debug.log filters = threshold filter.threshold.type = ThresholdFilter filter.threshold.level = debug appenders = rolling a

我正在尝试创建包含生成日期的动态名称的日志文件

我有以下log4j2.properties文件:

status = error
name = PropertiesConfig
 
property.filename = C:\\logs\\debug.log
 
filters = threshold
 
filter.threshold.type = ThresholdFilter
filter.threshold.level = debug
 
appenders = rolling
 
appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = debug-backup-%d{MM-dd-yy-HH-mm-ss}-%i.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 20
 
loggers = rolling
 
logger.rolling.name = com.howtodoinjava
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile

但是,我不希望文件名中包含小时、分钟和秒,因此我将
appender.rolling.filePattern
属性更改为
debug backup-%d{MM dd yy}-%I.log
,文件停止生成。我还尝试了不同的日期格式,但无论我如何更改它,它都将不再工作,除非我撤消并使用旧的日期格式。

将属性中的日期格式更改为%d{yyyy-MM-dd} 另一点要注意的是,当日期更改时,文件将发生翻滚,因此不会立即创建具有此日期的文件,而是在日期更改时创建

测试的简单方法是将滚动文件大小的值更改为1MB,并检查是否使用预期的文件名创建了备份文件