我在同一个 Maven 项目中有两个应用程序,并通过在调用 SpringApplication.run() 之前为每个应用程序设置 spring.config.name
属性,为每个应用程序提供了自己的配置文件。
因此,在第一个应用程序中,我将 spring.config.name
设置为 server1
,以便它查找 server1
而不是 application.yml
。在第二个中,我将 spring.config.name 设置为 server2。
但是我希望他们共享相同的日志配置。不幸的是,日志记录配置无法通过 @PropertySource 导入,因为日志记录在读取属性源之前就已配置 - 请参阅 Logging section Spring Boot 手册。
有什么办法可以做到这一点吗?
最佳答案
Spring Boot 默认使用 Logback。您可以在 src/main/resources 中放置 logback.xml 文件来配置日志。并且两个应用程序都会自动使用此文件来配置其日志引擎。
您可以在此处了解如何配置 Logback:http://logback.qos.ch/manual/configuration.html
一个简单的例子。它将把日志级别设置为 INFO 并记录到控制台:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
关于java - 在两个应用程序之间共享 Spring Boot YAML 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231506/