Spring 引导:使用 Spring 文档中的 logback-spring.xml 时打印 CONSOLE_LOG_PATTERN_IS_UNDEFINED

Spring boot: CONSOLE_LOG_PATTERN_IS_UNDEFINED printed when using the logback-spring.xml from Spring documentation

在 Spring Boot documentation 中使用 logback 配置时,将其放在 logback-spring.xml 中,控制台会打印出以下内容:

CONSOLE_LOG_PATTERN_IS_UNDEFINED CONSOLE_LOG_PATTERN_IS_UNDEFINEDCONSOLE_LOG_PATTERN_IS_UNDEFINEDCONSOLE_LOG_PATTERN_IS_UNDEFINEDCONSOLE_LOG_PATTERN_IS_UNDEFINEDCONSOLE_LOG_PATTERN_IS_UNDEFINED....

这就是记录 1 个日志条目时打印的全部内容。所以想象一下那一长串。 logback配置是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <include resource="org/springframework/boot/logging/logback/default.xml"/>
  <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
  <root level="INFO">
    <appender-ref ref="CONSOLE" />
  </root>
  <logger name="org.springframework.web" level="DEBUG"/>
</configuration>

因此阅读了有关此的各种内容,我尝试为链接到 spring.console.patternCONSOLE_LOG_PATTERN 添加 <springProperty...。那没有用。这就是我认为 default.xml 应该做的。

为什么这个建议的配置不起作用?

经过一番挖掘,我发现这是 spring 文档中的一个简单拼写错误。在此 source 中,您可以看到文件名。文件名为 defaults.xml,带有 s.

但是在文档中,他们将文件包含为 default.xml。 属性 CONSOLE_LOG_PATTERN 是在defaults.xml 中定义的。 Spring 找不到它,所以它产生了错误。

所以解决方案就是添加一个 s。将此行更改为

<include resource="org/springframework/boot/logging/logback/default.xml"/>

<include resource="org/springframework/boot/logging/logback/defaults.xml"/>