【问题标题】:Spring boot application - how to print logs in Json formatSpring Boot 应用程序 - 如何以 Json 格式打印日志
【发布时间】:2019-08-24 17:58:17
【问题描述】:

我需要以漂亮的 Json 格式打印日志,包含所有详细信息。

目前我在 spring boot 和 application.yml 配置文件上有我的小服务。我有以下日志记录配置;

logging:
  level:
    root: INFO
    org:
      springframework:
        security: INFO
        web: INFO
      hibernate: INFO
      apache:
        commons:
          dbcp2: INFO
  file: ../logs/myLog.log
  pattern:
    console: '%d{yyyy-MMM-dd HH:mm:s  s.SSS} %-5level [%thread] %logger{15} - %msg%n'

能否请您告诉我是否有任何配置可以更改附加程序,以便我可以获取 Json 格式的日志。

【问题讨论】:

    标签: spring-boot logging slf4j spring-logback


    【解决方案1】:

    首先在文件夹src/main/resources中创建一个名为logback-spring.xml的文件,内容与此类似:

    <configuration>
        <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
        </appender>
        <logger name="jsonLogger" additivity="false" level="DEBUG">
            <appender-ref ref="consoleAppender"/>
        </logger>
        <root level="INFO">
            <appender-ref ref="consoleAppender"/>
        </root>
    </configuration>
    

    第二次添加如下依赖:

    <dependency>
      <groupId>net.logstash.logback</groupId>
      <artifactId>logstash-logback-encoder</artifactId>
      <version>6.3</version>
    </dependency>
    

    就是这样。

    您应该会看到与此类似的行:

    {"@timestamp":"2018-10-11T23:48:57.215+00:00","@version":1,"message":"Sample TRACE Message","logger_name":"com.example.demo.LoggingExample","thread_name":"http-nio-8080-exec-1","level":"TRACE","level_value":5000}
    

    更多详情请见full example。

    【讨论】:

      猜你喜欢
      • 2021-03-11
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多