Spring Boot 3.3.2升级后遇ClassNotFoundException: ch.qos.logback.core.util.StatusPrinter2
解决Spring Boot 3.3.2升级后logback的ClassNotFoundException问题
出现ch.qos.logback.core.util.StatusPrinter2找不到的错误,核心原因是你使用的logback版本(1.4.14)中不存在这个类,该类是logback 1.5.x版本新增的。结合你的场景,可按以下步骤排查解决:
1. 检查logback配置文件
打开项目中的logback.xml或logback-spring.xml等配置文件,查找是否有类似如下的配置:
<statusListener class="ch.qos.logback.core.util.StatusPrinter2"/>
如果存在,将其修改为logback 1.4.x版本支持的StatusPrinter:
<statusListener class="ch.qos.logback.core.util.StatusPrinter"/>
2. 移除手动指定的logback版本,依赖Spring Boot的版本管理
Spring Boot的starter依赖已经内置了经过兼容性验证的logback版本,手动指定版本容易引发版本不匹配问题。修改你的pom.xml,删除logback依赖中的<version>标签:
<dependencies> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-access</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> </dependencies>
这样Spring Boot会自动引入与3.3.2版本匹配的logback版本,避免版本兼容问题。
3. 若需指定logback版本,确保版本兼容
如果因业务需求必须手动指定logback版本,有两种选择:
- 升级logback至1.5.x系列(如1.5.6),该版本包含
StatusPrinter2类,需确认与Spring Boot 3.3.2的兼容性; - 降级至Spring Boot 3.3.2默认管理的logback版本(1.4.12),保持版本匹配。
内容的提问来源于stack exchange,提问作者desi_stoic
相关产品推荐
相关产品推荐

