2017-08-08 1 views
0

Dans ma botte de printemps application la configuration suivante est utilisée pour ajouter des bûches JSON via logback-spring.xml:Comment configurer les journaux pour qu'ils soient uniquement au format JSON dans l'application de démarrage Spring?

<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> 

Cependant, lors de l'exécution de l'application sont tracés les deux versions de journaux (non 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} 

Est-il possible de configurer l'encodeur logback/logstash, afin que seule la version JSON soit disponible dans les journaux et que les non-JSON soient ignorés?

Répondre

2

oh, moi stupide - il faut simplement supprimer la ligne de config logback qui ajoute l'enregistrement de base:

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