This commit is contained in:
39
openspec/specs/gateway-request-logging/spec.md
Normal file
39
openspec/specs/gateway-request-logging/spec.md
Normal 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()`
|
||||
Reference in New Issue
Block a user