SpringBoot版本升级后配置的logging.pattern.level日志格式不生效且启动报错
问题原因
- 该报错是SpringBoot版本与日志依赖版本不兼容、日志格式参数缺失共同导致的,具体触发点如下:
- 版本不匹配:你升级SpringBoot版本后,
spring-boot-starter-log4j2(如果你使用Log4j2作为日志实现)或日志实现本身的版本没有同步更新,导致SpringBoot提供的org.springframework.boot.logging.log4j2.ColorConverter类不符合当前日志框架的PatternConverter接口规范,日志框架初始化时无法识别%clr颜色转换标识符。 - 格式参数缺失:你当前配置中第一个
%clr(%5p)没有指定颜色参数,部分版本的日志适配要求%clr必须传入至少一个颜色参数,触发了「参数数量不正确」的报错。
- 版本不匹配:你升级SpringBoot版本后,
解决办法
- 按以下顺序排查处理即可:
- 统一依赖版本:确保所有SpringBoot相关依赖版本完全一致,推荐通过继承
spring-boot-starter-parent或使用dependencyManagement全局管理SpringBoot版本,不要混用不同版本的SpringBoot模块。如果你单独引入了Log4j2的零散依赖,建议直接删除,仅保留spring-boot-starter-log4j2依赖,由SpringBoot管理对应Log4j2的兼容版本。 - 补全日志格式参数:给所有
%clr转换符显式指定颜色参数,比如将第一个%clr(%5p)补充默认颜色配置,修改后的示例如下:logging.pattern.level: "%clr(%5p){faint} %clr([%X{traceId}/%X{spanId}]){yellow}" - 不需要彩色日志的场景可以直接删除所有
%clr配置,改用纯文本格式,彻底规避转换符兼容问题:logging.pattern.level: "%5p [%X{traceId}/%X{spanId}]"
- 统一依赖版本:确保所有SpringBoot相关依赖版本完全一致,推荐通过继承
内容的提问来源于stack exchange,提问作者jwqzswuntwtixyav
相关产品推荐
相关产品推荐

