Log4j2日志留存配置异常:部分历史日志未保留问题排查
问题
我在项目中使用Log4j 2.17库,需在服务器上留存日志14天,已配置log4j2.properties文件(配置代码如下)。测试时将留存时长设为2天,5月28日查看日志时,28日有6个日志文件、27日10个10MB日志文件完整存在,但26日仅保留了app.log.2024-05-26.5/6/7这3个文件;5月29日查看时,27、28日的10个日志文件均完整留存。请问为何26日仅保留部分日志文件?
配置代码
status=error name = PropertiesConfig property.basePath=C:/logs property.filename=C:/logs/app.log filters=threshold filter.threshold.type=ThresholdFilter filter.threshold.level=debug appenders=PR01 #appender.PR01=org.apache.log4j.core.appender.RollingAppender appender.PR01.type=RollingFile appender.PR01.name=RollingFile appender.PR01.fileName=${filename} appender.PR01.filePattern=C:/logs/app.log.%d{yyyy-MM-dd}.%i appender.PR01.layout.type=PatternLayout appender.PR01.layout.pattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n appender.PR01.policies.type=Policies appender.PR01.policies.size.type=SizeBasedTriggeringPolicy appender.PR01.policies.size.size=10MB appender.PR01.strategy.type=DefaultRolloverStrategy appender.PR01.strategy.max=10 appender.PR01.strategy.delete.type=Delete appender.PR01.strategy.delete.basepath=${basePath} appender.PR01.strategy.delete.maxDepth=1 appender.PR01.strategy.delete.ifLastModified.type=IfLastModified appender.PR01.strategy.delete.ifLastModified.age=14D appender.PR01.strategy.delete.PathConditions.type=IfFileName appender.PR01.strategy.delete.PathConditions.glob=app.log\* loggers=PR01 logger.PR01.name=com.java.logs.Log4j2Project logger.PR01.level=debug logger.PR01.additivity=false logger.PR01.appenderRef.rolling.ref=RollingFile
分析与解答
问题核心在于Log4j 2删除策略的时间判定逻辑,结合你测试时设置的2天留存阈值具体执行:
删除判定的核心依据
配置中的IfLastModified条件是基于文件实际最后修改时间,而非日志文件名中的日期。系统会检查每个日志文件的最后修改时间是否早于「当前时间 - 2天」,满足条件的文件会被自动删除。5月28日的现象原因
- 5月26日生成的编号0-4的日志文件,是当日较早时段产生的,它们的最后修改时间早于「5月28日当前时间 - 2天」的节点,因此被判定为过期并删除。
- 编号5-7的文件是5月26日较晚时段生成的,最后修改时间尚未超过2天的阈值,所以被保留。
5月29日的现象原因
到5月29日时,5月26日所有文件的最后修改时间都已早于「5月29日当前时间 - 2天」,因此被全部清理;而5月27日的文件最后修改时间在5月27日,距离5月29日未超过2天,符合留存要求,所以完整保留。
补充说明:配置中的strategy.max=10仅控制单日内最多生成10个分片日志文件(按10MB滚动触发),这就是27日有完整10个文件的原因,该参数和历史文件的删除逻辑无关。
内容的提问来源于stack exchange,提问作者Megha Tayal
相关产品推荐
相关产品推荐

