All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m34s
40 lines
1.4 KiB
Markdown
40 lines
1.4 KiB
Markdown
# Gateway Request Logging
|
||
|
||
## Purpose
|
||
|
||
Gateway 请求日志记录,在每次 Gateway API 调用时按结果级别记录请求日志,便于问题排查和运维监控。
|
||
|
||
## ADDED Requirements
|
||
|
||
### Requirement: Gateway 请求日志
|
||
|
||
系统 SHALL 在每次 Gateway API 调用时记录请求日志,包含请求路径和请求体大小。
|
||
|
||
#### Scenario: 正常请求记录 Debug 日志
|
||
|
||
- **WHEN** 调用 `doRequest(ctx, "/flow-card/status", req)` 且请求成功
|
||
- **THEN** 记录 Debug 级别日志
|
||
- **AND** 日志包含字段:`path`(请求路径)、`duration`(耗时)
|
||
|
||
#### Scenario: Gateway 业务错误记录 Warn 日志
|
||
|
||
- **WHEN** Gateway 返回 `code != 200` 的业务错误
|
||
- **THEN** 记录 Warn 级别日志
|
||
- **AND** 日志包含字段:`path`、`duration`、`gateway_code`(Gateway 状态码)、`gateway_msg`(Gateway 错误信息)
|
||
|
||
#### Scenario: 网络错误记录 Error 日志
|
||
|
||
- **WHEN** HTTP 请求失败(连接失败、超时、DNS 解析失败等)
|
||
- **THEN** 记录 Error 级别日志
|
||
- **AND** 日志包含字段:`path`、`duration`、`error`(错误信息)
|
||
|
||
### Requirement: Logger 依赖注入
|
||
|
||
系统 SHALL 通过构造函数将 `*zap.Logger` 注入到 `Client` 中。
|
||
|
||
#### Scenario: 创建带日志的客户端
|
||
|
||
- **WHEN** 调用 `gateway.NewClient(baseURL, appID, appSecret, logger)`
|
||
- **THEN** 客户端使用传入的 logger 记录日志
|
||
- **AND** 不使用全局 `zap.L()`
|