You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot应用启动重复打印CONSOLE_LOG_PATTERN_IS_UNDEFINED警告求助

我之前在维护同版本栈的Spring Cloud应用时,也碰到过这个一模一样的问题——启动时重复刷CONSOLE_LOG_PATTERN_IS_UNDEFINED。结合Finchley.M9和Spring Boot 2.0.0.RELEASE的版本特性,这个问题主要是日志配置加载异常或者版本兼容bug导致的,下面给你几个亲测有效的解决办法:

解决Spring Boot+Spring Cloud启动重复打印CONSOLE_LOG_PATTERN_IS_UNDEFINED的问题

1. 修正日志配置的YAML层级缩进

Spring Boot对YAML的格式要求特别严格,你当前的application.yml日志配置大概率存在缩进错误,导致Spring无法识别正确的控制台日志格式,才会输出占位符内容。正确的配置结构应该是:

## spring-boot配置
# 日志配置
logging:
  file: "log/hello.log"
  pattern:
    console: "[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level [%t] [%logger - %line]: %m%n"
    file: "[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level [%t] [%logger - %line]: %m%n"

注意pattern下的console和file要缩进一级,和根节点下的file是同级子节点。

2. 排除Spring Cloud组件的冲突日志配置

Finchley.M9作为里程碑版本,部分Spring Cloud组件(比如Spring Cloud Commons)自带的默认日志配置会和Spring Boot的配置冲突。你可以在pom.xml里排除相关依赖,统一日志配置的加载源:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

确保你的项目只依赖spring-boot-starter-logging这一个日志启动器。

3. 升级Spring Cloud到稳定版

Finchley.M9本身存在不少已知bug,日志配置问题就是其中之一。建议你升级到Finchley系列的稳定版(Finchley.RELEASE),它完全兼容Spring Boot 2.0.0.RELEASE,同时修复了里程碑版本的诸多问题:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

4. 手动指定日志配置文件绕过自动配置

如果上面的方法都不生效,你可以直接通过启动参数指定自定义日志配置文件,彻底绕过Spring的自动配置逻辑:

java -jar your-app.jar --logging.config=classpath:logback-spring.xml

然后在src/main/resources下创建logback-spring.xml,直接定义日志格式:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level [%t] [%logger - %line]: %m%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>log/hello.log</file>
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level [%t] [%logger - %line]: %m%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:20:08