【问题标题】:Log4j2 logfile not getting generated after changing name pattern更改名称模式后未生成 Log4j2 日志文件
【发布时间】:2021-04-27 23:56:55
【问题描述】:

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

我有以下 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 并且文件停止生成。我也尝试了不同的日期格式,但无论我如何更改它都将不再有效,除非我撤消并使用旧的日期格式。

【问题讨论】:

    标签: java log4j log4j2


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 2022-01-19
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多