Java 它';在spring boot故障期间,diable Logging FailureAnalysisReporter是否可能发生故障?
在spring引导失败期间,是否可以禁用日志FailureAnalysisReporter执行?我定制了自己的Java 它';在spring boot故障期间,diable Logging FailureAnalysisReporter是否可能发生故障?,java,spring,spring-boot,Java,Spring,Spring Boot,在spring引导失败期间,是否可以禁用日志FailureAnalysisReporter执行?我定制了自己的FailureAnalysisReporter,我不想报告“两次”。您可以通过覆盖spring.Factorys配置spring boot: 更换: # FailureAnalysisReporters org.springframework.boot.diagnostics.FailureAnalysisReporter=\ org.springframework.boot.diagn
FailureAnalysisReporter
,我不想报告“两次”。您可以通过覆盖spring.Factorys
配置spring boot
:
更换:
# FailureAnalysisReporters
org.springframework.boot.diagnostics.FailureAnalysisReporter=\
org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter
# FailureAnalysisReporters
org.springframework.boot.diagnostics.FailureAnalysisReporter=\
your.own.implementation.of.FailureAnalysisReporter
与:
# FailureAnalysisReporters
org.springframework.boot.diagnostics.FailureAnalysisReporter=\
org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter
# FailureAnalysisReporters
org.springframework.boot.diagnostics.FailureAnalysisReporter=\
your.own.implementation.of.FailureAnalysisReporter
更新:
# FailureAnalysisReporters
org.springframework.boot.diagnostics.FailureAnalysisReporter=\
org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter
# FailureAnalysisReporters
org.springframework.boot.diagnostics.FailureAnalysisReporter=\
your.own.implementation.of.FailureAnalysisReporter
重写spring.factories
意味着在项目根/src/main/resources/META-INF
下创建spring.factories
文件。因此springboot
将加载覆盖的属性,并保持其他属性不变
Spring引导检查是否存在META-INF/Spring.factories
在您发布的jar中创建一个文件。该文件应列出您的
EnableAutoConfiguration键下的配置类
请参阅文档:我刚刚找到了一种归档我想要的内容的方法,只需将:
添加到我的logback
配置将禁用该类的任何日志记录,这基本上是LoggingFailureAnalysisReporter
要做的唯一事情。你的意思是,覆盖文件spring boot project/spring boot/src/main/resources/META-INF/spring.factories
?可以,但这不是一个可行的解决方案,因为我必须维护一个自定义jar。重写spring.factories意味着在根项目/src/main/resources/META-INF下创建一个spring.factories。因此,spring boot将加载重写的属性并保留其他属性。请参阅文档:是的,我已经这样做了,LoggingFailureAnalysisReporter
仍然会执行,因为我的自定义FailureAnalysisReporter
也会进行一些故障排除,以查看您项目的spring.factories是否真的由spring Boot加载。实际上,我做了一些进一步的调查,在spring工厂加载过程中(org.springframework.core.io.support.SpringFactoriesLoader#loadSpringFactories
),spring使用多值映射将从所有src/main/resources/META-INF
资源中找到的所有键相加,因此,相同键的多个值被存储,而不是被覆盖。