如何将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
相关产品推荐
相关产品推荐

