You need to enable JavaScript to run this app. 非Spring应用引入spring-security后无法输出org.springframework包日志问题
优惠活动
大模型
产品
解决方案
定价
更多

非Spring应用引入spring-security后无法输出org.springframework包日志问题

非Spring应用Spring框架日志无法输出解决办法

核心原因

非Spring Boot场景下,application.properties中的logging.*、debug=true均为Spring Boot专属配置,不会被Spring框架直接读取。Spring默认使用Apache Commons Logging(JCL)作为日志门面,未引入JCL到Log4j的桥接实现时,Spring的日志无法输出到你已配置的Log4j上下文。

解决步骤

  • 第一步:引入JCL桥接依赖
    Maven项目在pom.xml中添加以下依赖,版本和你现有Spring依赖版本保持一致即可:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jcl</artifactId>
        <version>${spring.version}</version>
    </dependency>
    

    Gradle项目添加如下配置:

    implementation "org.springframework:spring-jcl:${springVersion}"
    

    spring-jcl是Spring官方改造的JCL实现,会自动适配当前项目已存在的日志框架,无需额外配置

  • 第二步:修改Log4j配置
    在你已有的log4j.properties中添加Spring包的日志级别规则:

    # 配置org.springframework包全局日志级别为TRACE
    log4j.logger.org.springframework=TRACE
    # 日志继承根Logger的输出配置,无需单独指定appender可保持为true
    log4j.additivity.org.springframework=true
    

    需确保你配置的根Logger或对应输出appender的阈值不高于TRACE,否则日志会被appender直接拦截

  • 第三步:清理无效配置
    删除之前application.properties中添加的所有日志相关配置,非Spring Boot场景下这类配置不会生效。

问题排查补充

若配置后仍无Spring日志输出,可检查依赖冲突,排除项目中其他JCL实现包(如org.apache.logging.log4j:log4j-jcl),仅保留spring-jcl作为唯一的JCL实现即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 03:15:04