# 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()`