Spring 启动应用程序 - 如何以 Json 格式打印日志
Spring boot application - how to print logs in Json format
我需要以漂亮的 Json 格式打印日志,其中包含所有详细信息。
目前我在 spring 引导和 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'
你能告诉我是否有任何配置可以更改 appender,所以我可以获得 Json 格式的日志。
首先在文件夹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。
我需要以漂亮的 Json 格式打印日志,其中包含所有详细信息。
目前我在 spring 引导和 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'
你能告诉我是否有任何配置可以更改 appender,所以我可以获得 Json 格式的日志。
首先在文件夹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。