问题描述
spring boot项目升级到2.x,启动时出现错误提示:java.lang.ClassNotFoundException: org.apache.log4j.Logger
原因
查看maven的依赖结构,发现升级到2.x后,org.slf4j的依赖不全,导致出现版本兼容问题.
解决
spring boot 2.x 默认采用 logback 记录日志,手动添加日志依赖,并排除 log4j相关依赖.
maven 的 pom.xml 中做如下处理:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency>
重新启动项目,不再报错,问题解决.