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

升级Spring Boot父版本至1.5.9.RELEASE时出现log4j依赖版本缺失错误

解决Spring Boot 1.5.9.RELEASE升级后spring-boot-starter-log4j版本缺失问题

我之前升级Spring Boot版本的时候也踩过这个坑,原因其实很明确:Spring Boot从1.4.x版本开始就已经弃用了spring-boot-starter-log4j,这个starter不再被父依赖管理版本,所以构建时会直接抛出版本缺失的错误。

给你几个可行的解决方案,按需选择:

方案一:切换到官方推荐的Log4j 2(优先推荐)

Spring Boot官方现在主推Log4j 2作为日志框架,对应的spring-boot-starter-log4j2会被父依赖自动管理版本,直接替换原来的依赖即可:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

如果你的项目里有默认引入的spring-boot-starter-logging(大部分starter会间接引入),记得排除它避免冲突:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

方案二:继续使用Log4j 1.x(不推荐)

如果因为历史项目限制必须继续用Log4j 1.x,需要手动指定spring-boot-starter-log4j的版本,同时也要排除默认日志依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
    <version>1.3.8.RELEASE</version> <!-- 选择与1.5.9兼容的旧版本 -->
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

⚠️ 注意:Log4j 1.x已经停止维护多年,存在已知安全漏洞,强烈建议不要继续使用这个方案。

方案三:切换回默认的Logback日志框架

如果没有特殊的日志定制需求,直接移除spring-boot-starter-log4j依赖即可。Spring Boot默认集成的Logback已经能满足绝大多数场景,而且不需要额外配置版本:

<!-- 移除spring-boot-starter-log4j依赖 -->
<!-- 无需额外声明spring-boot-starter-logging,大部分starter会自动引入 -->

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:14:17