application.yml 中的 Spring Boot 日志设置

Posted

技术标签:

【中文标题】application.yml 中的 Spring Boot 日志设置【英文标题】:Spring boot log settings in application.yml 【发布时间】:2019-10-27 02:17:03 【问题描述】:

我正在构建一个 Spring Boot 应用程序。我使用 logstash 创建结构化日志,效果很好。但是,我正在尝试将以下 logback.xml 移动到 application.yml

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

    <root level="info">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

我在application.yml 中找不到任何教程或示例可以远程获取此内容。

此外,我注意到以下内容。如果我删除logback.xml 并将以下内容放入application.yml

spring:
  logging:
    level:
      ROOT: WARNING

根据this 的问题,我至少应该可以控制我的日志级别。没有骰子,信息被记录在所有地方。

所以,问题:

如何在application.yml中正确指定ROOT日志级别? 如何在application.yml 中正确指定logstash 编码器?

【问题讨论】:

【参考方案1】:

根级别可以这样配置:

logging:
  level:
    root: warning

但编码器无法使用属性或 yaml 进行配置。请在 Spring Boot 参考文档中找到所有属性: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties

所以没有办法绕过 logback xml 文件

【讨论】:

感谢您提供的链接,我会仔细阅读。我仍然收到信息消息。这怎么可能?

以上是关于application.yml 中的 Spring Boot 日志设置的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot中的配置文件(application.propertiesapplication.yml与pom.xml)

如何将 application.yml 中的地图注入 Spring Boot 中的字段?

Spring Boot App 无法识别 application.yml 文件中的环境变量

无法从 Java Spring Boot 项目中的 application.yml 文件中读取用户定义类的列表

spring boot 读取配置文件(application.yml)中的属性值111

spring-boot结合maven配置不同环境的profile