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

如何在Spring 5.3.7+Log4j 1.2.7+Tomcat 9环境下记录Spring框架日志至log.out文件

如何让Spring框架日志输出到Log4j配置的log.out文件?

先梳理下你的环境背景:

  • Spring 5.3.7
  • Log4j 1.2.7
  • 非Maven构建,部署在Tomcat 9服务器
  • 已通过log4j.properties将自定义日志输出到log.out,现在需要把Spring的Bean初始化、异常等框架日志也同步输出到这个文件

问题根源

Spring框架默认用**Jakarta Commons Logging (JCL)**做日志门面,而Log4j 1.2是JCL的兼容实现。你当前的配置只处理了rootLogger和自定义日志,但没明确配置Spring相关包的日志路由,导致Spring的日志没被引导到你的FILE appender里。

解决方案:修改log4j.properties

在你现有配置基础上,添加针对Spring核心包的Logger配置即可。

你的原始配置:

log4j.rootLogger = DEBUG, FILE
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=${catalina.home}\\mylogs\\log.out
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxFileSize=5MB
log4j.appender.FILE.MaxBackupIndex=5
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

修改后的配置(新增Spring日志路由):

log4j.rootLogger = DEBUG, FILE
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=${catalina.home}\\mylogs\\log.out
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxFileSize=5MB
log4j.appender.FILE.MaxBackupIndex=5
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

# 配置Spring框架日志输出到FILE appender
log4j.logger.org.springframework = DEBUG, FILE
# 关闭日志追加性,避免Spring日志重复输出到rootLogger的其他appender
log4j.additivity.org.springframework = false

配置说明

  • log4j.logger.org.springframework = DEBUG, FILE:指定Spring核心包下的所有日志以DEBUG级别输出到你定义的FILE appender,这样Bean初始化、上下文加载、异常等日志都会被捕获。
  • log4j.additivity.org.springframework = false:默认日志会同时输出到当前Logger和父Logger(这里是rootLogger),设置为false可以避免Spring日志被重复输出(因为rootLogger已经关联了FILE appender)。

可选优化

如果你不需要Spring所有模块的日志,只想聚焦Bean相关内容,可以把配置更精确:

# 只输出Spring Bean模块的日志
log4j.logger.org.springframework.beans = DEBUG, FILE
log4j.additivity.org.springframework.beans = false

额外检查

确保你的WEB-INF/lib目录下存在以下两个jar包(非Maven构建需手动添加):

  • log4j-1.2.7.jar
  • commons-logging.jar(Spring 5.x依赖JCL,需要它桥接Log4j)

重启Tomcat后,你就能在log.out里看到Spring框架生成的各类日志了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:38:10