問題描述
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>
重新啟動項目,不再報錯,問題解決.