You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Log4j2半每日日志滚动配置失效问题及配置方法咨询

实现Log4j2半每日(12小时)日志滚动的正确配置

好消息,Log4j2完全支持半每日(12小时周期)的日志滚动,你的配置问题主要出在时间触发策略的参数搭配和一处属性引用错误上。下面是修正后的完整配置和细节解释:

修正后的完整配置

status = error
name = Proper
property.filepath = C\:/xi/doc/home/new/log
property.filename1 = ${filepath}/Common.log
filter.threshold.type = ThresholdFilter
filter.threshold.level = debug
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %5p [%C].%M %m %n
appender.rolling1.type = RollingFile
appender.rolling1.name = RollingFile1
appender.rolling1.fileName = ${filename1}
# 保留带AM/PM标识的文件模式,区分上下半天
appender.rolling1.filePattern = ${filepath}/Common.%d{yyyy-MM-dd-a}.%i.log.gz
appender.rolling1.layout.type = PatternLayout
appender.rolling1.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %5p [%C].%M %m %n
appender.rolling1.policies.type = Policies
appender.rolling1.policies.time.type = TimeBasedTriggeringPolicy
# 时间间隔设为1,对应filePattern中12小时的粒度(a标识)
appender.rolling1.policies.time.interval = 1
appender.rolling1.policies.time.modulate = true
appender.rolling1.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling1.policies.size.size = 100MB
appender.rolling1.strategy.type = DefaultRolloverStrategy
appender.rolling1.strategy.max = 20
appender.rolling1.strategy.delete.type = Delete
# 修正basePath为已定义的filepath属性
appender.rolling1.strategy.delete.basePath = ${filepath}
appender.rolling1.strategy.delete.maxDepth = 10
appender.rolling1.strategy.delete.ifLastModified.type = IfLastModified
# Delete all files older than 1 day
appender.rolling1.strategy.delete.ifLastModified.age = 1d
# loggers
logger.name = common
logger.level = debug
logger.additivity = false
logger.appenderRefs = rolling1
logger.appenderRefs.level = debug
logger.appenderRef.rolling1.ref = RollingFile1

关键修改点说明

  1. 时间触发策略与文件模式的匹配

    • 你的文件模式%d{yyyy-MM-dd-a}中,a代表AM/PM(12小时周期标识),这已经定义了12小时的滚动粒度。
    • 对应的TimeBasedTriggeringPolicy.interval设为1,表示每隔1个“12小时周期”触发一次滚动;modulate=true会让滚动时间对齐到12小时的起始点(凌晨0点、中午12点),避免出现非整点的滚动时间。
  2. 修复删除策略的路径引用
    原配置中strategy.delete.basePath = ${basePath}里的basePath未定义,改为已存在的${filepath}才能让旧文件删除策略正常生效。

验证效果

配置生效后,日志会在每天的**0点(AM)和12点(PM)**自动触发滚动;如果单文件大小提前达到100MB,也会触发滚动(SizeBased策略生效)。滚动后的日志文件名会类似Common.2024-05-20-AM.1.log.gz、Common.2024-05-20-PM.1.log.gz,清晰区分上下半天的日志。

内容的提问来源于stack exchange,提问作者user18121839

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 11:52:30