log4j.xml配置的rollingPolicy与triggeringPolicy被忽略是什么原因?
问题原因及修复方案
- 依赖缺失:
org.apache.log4j.rolling包下的滚动策略、触发策略相关类不属于log4j 1.2.17核心包,是apache-log4j-extras扩展包提供的功能,你当前仅引入了核心包,导致策略配置无法生效。需要补充对应依赖,Gradle配置如下:
implementation group: 'log4j', name: 'apache-log4j-extras', version: '1.2.17'
- 文件名规则配置错误:你当前的
FileNamePattern仅配置了日期占位符%d,同一天内触发大小滚动时无法生成带序号的独立归档文件,导致滚动逻辑被阻断。需要在文件名规则中增加序号占位符%i,修改后配置如下:
<param name="FileNamePattern" value="/Users/me/logs/test/log-file.log.%d{dd-MMM}.%i.log.zip" />
- 无效引用清理:你在root节点中引用的
console、fileAppender两个appender并未在配置中定义,运行时会抛出警告,建议要么补充这两个appender的对应配置,要么删掉这两行无效的appender-ref引用。
你可以通过配置中已经开启的debug="true"参数查看控制台的log4j初始化日志,能直接看到类不存在、配置无效的相关报错,方便定位问题。
内容的提问来源于stack exchange,提问作者Dinu Nicolae
相关产品推荐
相关产品推荐

