设备的部分改造
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m34s

This commit is contained in:
2026-03-10 10:34:08 +08:00
parent 86f8d0b644
commit b5147d1acb
34 changed files with 1680 additions and 485 deletions

View File

@@ -0,0 +1,39 @@
# 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()`