java - 在两个应用程序之间共享 Spring Boot YAML 配置

标签 java logging properties spring-boot yaml

我在同一个 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/

相关文章:

grails - 从 Controller 记录Grails

java - 套接字将多个客户端编程到一台服务器

c# - WPF:无法在属性元素怪异上设置属性

iphone - Objective-C 属性 setter 如何发出失败信号?

java - 通过创建方法来比较两个对象

java - org.apache.commons.codec.DecoderException : Odd number of characters

java - 如何在java中更新MongoDB的密码

java - 使用流将 Java 列表转换为映射,其中映射中的每个值共享相同的属性

logging - Golang 日志函数返回参数

c# - 将属性本身传递给 C# 中的参数