spring-boot-logging:记录Spring Boot HTTP请求/响应并与Elastic栈集成


创建该库是为了记录传入的 HTTP 请求和传出的 HTTP 响应,并将这些日志自动发送到 Logstash。

spring-boot-logging是用于记录 Spring Boot 应用程序的 HTTP 请求/响应以及与 Elastic Stack 集成的库。

依赖:

<dependency>
  <groupId>com.github.piomin</groupId>
  <artifactId>logstash-logging-spring-boot-starter</artifactId>
  <version>1.4.1</version>
</dependency>

Spring WebFlux:

<dependency>
  <groupId>com.github.piomin</groupId>
  <artifactId>reactive-logstash-logging-spring-boot-starter</artifactId>
  <version>1.4.1</version>
</dependency>

logstash-logging-spring-boot-starter提供的主要功能开始:

  • 它能够记录所有传入的HTTP请求和传出的HTTP响应的全文,并将这些日志以适当的标签发送到Logstash。
  • 它能够计算并存储每个请求的执行时间
  • 它为使用Spring RestTemplate或OpenFeign调用的下游服务生成并传播correlationId。
  • 它是可自动配置的Spring Boot库--你不需要做任何事情,只需要将它作为一个依赖关系加入到你的应用程序中,就可以让它工作。

默认情况下,该库启用,但会尝试在你的应用程序中找到Logback配置,以设置Logstash appender。

如果找不到这样的appender,库会使用Spring Boot默认的日志配置,其中不包括Logstash appender。
为了强迫它使用库内自动配置的appender定义,我们必须将属性logging.logstash.enabled设置为true。

logging.logstash:
  enabled: true
  url: 192.168.99.100:5000


如果你提供自己的Logback配置文件,你应该配置Logstash appender来发送mdc标签中的所有字段,或者定义要发送的字段列表。下面是库所支持的字段列表:

X-Correlation-ID: 关联所有发送到下游服务的请求,在一个终端的调用中。
X-Request-ID:为单对请求/响应生成的ID
X-Response-Time:请求处理的时间,以毫秒计。
X-Response-Status:响应的HTTP状态。
X-Operation-Name:操作的名称,包括控制器名称和方法名称。
audit:用于标记库生成的日志。

详细点击标题