【问题标题】:How to configure logs to be only in JSON format in spring boot app?如何在 Spring Boot 应用程序中将日志配置为仅 JSON 格式?
【发布时间】:2017-08-08 05:55:07
【问题描述】:

在我的 Spring Boot 应用程序中,以下配置用于通过 logback-spring.xml 添加 JSON 日志:

<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <fieldNames>
                <timestamp>time</timestamp>
                <message>msg</message>
                <thread>thread</thread>
                <logger>logger</logger>
                <version>[ignore]</version>
                <levelValue>[ignore]</levelValue>
            </fieldNames>
        </encoder>
    </appender>
    <root level="all">
        <appender-ref ref="consoleAppender" />
    </root>
</configuration>

但是,在运行应用程序时,会跟踪两个版本的日志(非 JSON 和 JSON):

2017-08-08 07:31:49.718  INFO 6849 --- [           main] .s.b.c.e.j.JettyEmbeddedServletContainer : Jetty started on port(s) 10000 (http/1.1)
{"time":"2017-08-08T07:31:49.718+02:00","msg":"Jetty started on port(s) 10000 (http/1.1)","logger":"org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer","thread":"main","level":"INFO","HOSTNAME":"ilya-ThinkPad-X1-Carbon-4th","caller_class_name":"org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer","caller_method_name":"start","caller_file_name":"JettyEmbeddedServletContainer.java","caller_line_number":144}

是否可以配置 logback / logstash 编码器,以便日志中只有 JSON 版本可用,而非 JSON 版本将被跳过?

【问题讨论】:

    标签: spring-boot logstash logback


    【解决方案1】:

    哦,愚蠢的我 - 应该从 logback 配置中删除添加基本日志记录的行:

    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    【讨论】:

      猜你喜欢
      • 2019-08-24
      • 1970-01-01
      • 2013-12-28
      • 2022-10-05
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 2017-02-03
      相关资源
      最近更新 更多