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

如何将Log4j从1.2版本升级至2.16及以上(Maven环境)

Log4j 1.x 升级到2.x 版本不生效的解决建议
  • 先排查依赖冲突
    旧版本的Log4j大概率是被其他依赖间接引入的,用Maven命令生成依赖树定位问题:

    mvn dependency:tree -Dincludes=log4j
    

    找到引入旧版本的依赖后,在pom.xml里给它加上排除规则:

    <dependency>
        <groupId>你的依赖groupId</groupId>
        <artifactId>你的依赖artifactId</artifactId>
        <version>你的依赖版本</version>
        <exclusions>
            <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    另外要注意:Log4j 2.x和1.x不兼容,确保pom里没有残留1.x的依赖;如果项目用了SLF4J,要把log4j-over-slf4j这类1.x的桥接包换成log4j-slf4j-impl(2.x版本)。

  • 清理缓存重新构建
    执行Maven清理命令,强制更新依赖并清理旧构建文件:

    mvn clean install -U
    

    如果本地Maven仓库有旧版本缓存,直接删掉仓库里的log4j目录(比如~/.m2/repository/log4j),再重新构建。

  • 确认版本查看的准确性
    检查Shell里看的Jar包是不是项目构建后生成的(比如Web项目看target/WEB-INF/lib,普通Java项目看target/lib),别找错了路径。
    可以解压Jar包查看版本信息:

    jar -xf log4j-core-2.17.1.jar
    cat META-INF/MANIFEST.MF | grep Implementation-Version
    
  • 别手动更新Jar包
    Maven本身就是管依赖的,只要配置对了、缓存清干净,自动构建就能拉到正确版本的Jar。手动替换Jar容易导致依赖不一致,后续构建还会被覆盖,完全没必要。

内容的提问来源于stack exchange,提问作者what's_in_a_name

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:47:38