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

从log4j迁移至log4j2后服务日志无法正常显示问题求助

排查与解决步骤

依赖冲突检查

  • 完全移除项目中所有log4j 1.x版本的依赖,避免新旧日志框架类冲突
  • 必须引入对应日志桥接包:
    • 适配原有log4j 1.x调用:log4j-1.2-api
    • 适配slf4j接口调用:log4j-slf4j-impl
    • 适配hibernate使用的jboss日志:jboss-logging-log4j2
  • 禁止同时引入其他日志实现依赖,包括logback、slf4j-log4j12、log4j-to-slf4j等,否则会出现日志绑定优先级异常,仅输出部分框架日志

配置有效性校验

  • 先将<Configuration>的status属性修改为DEBUG,启动项目时会打印log4j2自身初始化日志,可直接定位配置加载失败、变量解析异常、Appender初始化错误等问题
  • 确认配置中使用的变量${log4j.level}、${log4j.root.level}、${soliam.fo.logdir}已正确注入,可先临时替换为固定值测试:比如将Root level设为INFO,日志路径改为本地绝对路径,排除变量解析失败导致日志级别过高、路径不存在的问题
  • 你当前配置的RollingFile Appender添加了ThresholdFilter级别为WARN,仅会输出WARN及以上级别的日志到文件,若需要输出INFO级别的业务日志,需将该过滤器级别调整为INFO或直接删除
  • 临时跳过自定义Rewrite逻辑测试:将Root Logger的AppenderRef改为直接指向CONSOLE,排除你自定义的LogInterceptor拦截过滤了非hibernate日志的可能
  • 未配置AppenderRef的Logger(比如org.springframework.flex.servlet.MessageBrokerHandlerAdapter)如果需要输出日志,需补充AppenderRef配置,或将additivity属性设为true继承Root的输出配置

配置加载校验

  • 排查类路径下是否存在其他log4j2配置文件(比如依赖jar包中自带的log4j2.xml、log4j2-test.xml),优先级更高的配置文件会覆盖你自定义的配置,导致配置不生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:57:03