2017-08-08 47 views
0

以我彈簧引導應用中的以下配置是通過logback-spring.xml用於添加JSON日誌:如何在春季啓動應用程序中僅將日誌配置爲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會被跳過?

回答

2

哦,愚蠢我 - 一個應該只是移除的logback配置它增加了基地日誌行:

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