1. 概述

1.1 插件名称

  • 请求日志记录插件

1.2 适用场景

  • 开发时调试或者线上排查问题等情况下,需要在网关侧查看本次请求在转发过程中的相关信息,如请求头、请求参数或响应头、响应体等。

1.3 插件功能

  • 通过logback或者log4j收集请求的url,请求头,请求体,响应信息和响应体,并将请求信息存储在本地。

1.4 插件代码

  • 核心模块 shenyu-pluign-logging-console.

  • 核心类 org.apache.shenyu.plugin.logging.console.LoggingConsolePlugin

1.5 添加自哪个shenyu版本

  • ShenYu 2.4.0

2. 如何使用插件

2.1 插件使用流程图

Logging插件 - 图1

2.2 导入pom

  • 在ShenYu-Bootstrap导入对应的pom依赖。
  1. <dependency>
  2. <groupId>org.apache.shenyu</groupId>
  3. <artifactId>shenyu-spring-boot-starter-plugin-logging-console</artifactId>
  4. <version>${project.version}</version>
  5. </dependency>

2.3 启用插件

  • shenyu-admin —> 基础配置 —> 插件管理-> logging ,设置为开启。

2.4 配置插件

2.5 示例

2.5.1 收集http请求信息

在你使用日志之前请在ShenYuAdmin开启日志插件.

2.5.1.1 选择器配置

Logging插件 - 图2

2.5.1.2 规则配置

Logging插件 - 图3

2.5.1.3 调用服务

Logging插件 - 图4

2.5.1.4 验证结果

如果请求成功,你将会在控制台看到如下信息。

  1. Request Uri: http://localhost:9195/test/payment
  2. Request Method: POST
  3. [Request Headers Start]
  4. Content-Type: application/json
  5. Content-Length: 46
  6. Host: localhost:9195
  7. Connection: Keep-Alive
  8. User-Agent: Apache-HttpClient/4.5.13 (Java/11.0.11)
  9. Cookie: JSESSIONID=CD325CE813F61BB37783A1D0835959DD
  10. Accept-Encoding: gzip,deflate
  11. [Request Headers End]
  12. [Request Body Start]
  13. {
  14. "userId": "11",
  15. "userName": "xiaoming"
  16. }
  17. [Request Body End]
  18. Response Code: 200 OK
  19. [Response Headers Start]
  20. transfer-encoding: chunked
  21. Content-Length: 37
  22. Content-Type: application/json
  23. [Response Headers End]
  24. [Response Body Start]
  25. {"userId":"11","userName":"xiaoming"}
  26. [Response Body End]

3. 如何禁用插件

  • shenyu-admin —> 基础配置 —> 插件管理-> logging ,设置为关闭。

Logging插件 - 图5