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

SpringBoot集成log4j2实现结构化JSON日志不生效问题排查

问题根因

核心原因是日志依赖冲突,Spring Boot 官方默认使用 logback 作为日志实现,你未排除默认 logback 依赖的情况下,类路径同时存在 logback 和 log4j2 两种实现,Spring Boot 会优先加载 logback,log4j2 配置完全不会生效。

解决步骤

1. 修正 pom.xml 依赖配置

  • 排除 spring-boot-starter-web 和 spring-boot-starter-actuator 中自带的默认 logback 依赖
  • 删除仅 logback 可用的 logstash-logback-encoder 依赖,该依赖对 log4j2 无任何作用,还可能引发类冲突
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.5.5</version>
        <!-- 排除默认logback依赖 -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>2.5.5</version>
        <!-- 排除actuator传递引入的logback依赖 -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <version>2.5.5</version>
    </dependency>
</dependencies>

2. 确认配置文件位置

你当前编写的 log4j2.xml 配置本身没有问题,JsonTemplateLayout 会默认输出日志级别、时间、线程、类名、MDC 字段等结构化信息,额外配置的 HOME_DIR 自定义字段也会正常输出。只需确保配置文件放在 src/main/resources 根目录下即可。

3. 验证生效

重新构建启动应用,调用接口后即可看到标准 JSON 格式的结构化日志,你代码中存入 MDC 的 acceptHeader 字段会自动包含在 JSON 日志中。

异常排查方案

如果修改依赖后仍不生效,启动应用时添加 JVM 参数 -Dlog4j2.debug=true,查看控制台输出的 log4j2 初始化日志,确认是否成功加载到你的配置文件,是否存在其他未排除的日志实现类冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:15:04