设置属性logging.pattern.console或logging.pattern.level时忽略覆盖模式

Sel*_*wyn 0 spring-boot

使用 spring-boot 1.3.2

我试图覆盖 application.properties 文件中的 logback 模式,但无论我放入什么模式,总是会调用 spring-boot jar xml 中的默认模式。我可以成功地从INFO -> DEBUG调整logging.level值,并且可以观察输出中的变化,但logging.pattern.[console | level] 始终被忽略。

logging.level.org.springframework=INFO
logging.pattern.console=user:%X{username} %X{ipAddress} %5p
#logging.pattern.console=%5p    #Also ignored 
#logging.pattern.level=%5p      #Also ignored 
Run Code Online (Sandbox Code Playgroud)

是的,我正在尝试使用 MDC 值,但即使我不使用 MDC 值,覆盖仍然会被忽略。

关于如何进一步排除故障有什么想法吗?

这是我的类路径层次结构,其中包含名称中包含字符串“log”的任何依赖项。

这是我的类路径层次结构,其中包含名称中包含字符串“log”的任何依赖项。

And*_*son 5

当类路径上存在不需要的logback.xml配置文件覆盖 Spring Boot 的配置时,就会发生这种情况。您可以通过系统属性强制 Logback 输出有关其配置的信息logback.statusListenerClass。例如,您可以在启动应用程序时将以下内容添加到 JVM 参数中:

\n\n
-Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果正在使用 Spring Boot 的默认值,因此logging.console.pattern应该可以工作,您将看到类似于以下内容的输出:

\n\n
12:38:27,471 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]\n12:38:27,489 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]\n12:38:27,489 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]\n12:38:27,492 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.\n
Run Code Online (Sandbox Code Playgroud)\n\n

logback.xml如果在类路径上的某个位置发现了杂散,您将看到类似于以下内容的输出:

\n\n
12:41:06,179 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]\n12:41:06,198 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]\n12:41:06,198 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [\xe2\x80\xa6]\n
Run Code Online (Sandbox Code Playgroud)\n