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

chu*_*ubs 2 java spring-boot spring-logback

当使用 Spring Boot文档中的 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....
Run Code Online (Sandbox Code Playgroud)

这就是记录 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>
Run Code Online (Sandbox Code Playgroud)

因此,阅读有关此内容的各种内容后,我尝试添加一个<springProperty...forCONSOLE_LOG_PATTERN链接到spring.console.pattern. 那行不通。这就是我认为default.xml应该做的。

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

Sha*_*rup 12

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

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

所以解决办法就是添加一个s. 将此行更改为

<include resource="org/springframework/boot/logging/logback/default.xml"/>
Run Code Online (Sandbox Code Playgroud)

<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
Run Code Online (Sandbox Code Playgroud)