AskaEth
3157abcf3c
fix(gateway): 日志页脱敏改用「可带上限」变体(4096),摘要侧仍是 80
塔 2026-10-26 复审裁定:复用 trace.RedactText 让面板日志页每条 msg 都被切到
80 rune,是实质性 UX 回归(日志页就是排障面)。修法不是网关侧另写脱敏,而是
在 trace 包给上限加一个参数。
- trace/redact.go:新增导出 `RedactTextLimited(s, limit)`,语义 = 同一套凭据形状
清洗 + 按调用方给的上限截断;`RedactText` 改为它的 `maxSummaryRunes`(80)
调用形态,既有调用方零改动,清洗逻辑仍只有一份(redactSecrets)。
limit <= 0 = 不截断,留给体积已自己界定的调用方。
- observability_logs.go:新增常量 `maxLogMsgRunes = 4096`(含注释说明为什么不是
80、也不是无上限:单条日志可能是 %v 的 MiB 级对象,1000 条会撑爆 JSON),
adminLogOf 改用 `RedactTextLimited(e.Msg, maxLogMsgRunes)`。
- span props / 摘要侧不动,仍是 80(一个要摘要,一个要全文,两边不该被统一)。
测试(均验过变异打红):
- TestAdminObservabilityLogs_LongLineKeepsFullText:547 rune 的日志行(行首凭据 +
行尾哨兵)⇒ 凭据打码、末尾哨兵仍在、rune 数只差「凭据→[redacted]」那一处;
变异(改回 RedactText 80)⇒ 红:拿到 81 rune、末尾哨兵消失。
- TestAdminObservabilityTrace_PropsStayAtSummaryBound:200 rune 的 args_summary
⇒ 81 rune(80 + 省略号);变异(把 maxSummaryRunes 提到 4096)⇒ 红。
验收:go build ./... / go vet ./... 全绿;go test -count=1 -race
./internal/services/gateway/... ./internal/runtime/trace/... 全绿。未 push。
2026-10-26 13:58:02 +08:00
..
2026-10-04 14:14:05 +08:00
2026-10-06 21:16:23 +08:00
2026-10-06 14:12:27 +08:00
2026-10-13 22:12:11 +08:00
2026-10-06 09:03:53 +08:00
2026-10-04 19:15:12 +08:00
2026-10-06 21:16:21 +08:00
2026-09-06 05:07:13 +08:00
2026-10-06 14:12:27 +08:00
2026-09-09 00:08:29 +08:00
2026-10-26 13:20:45 +08:00
2026-10-26 13:36:15 +08:00
2026-10-06 21:48:48 +08:00
2026-10-07 18:50:45 +08:00
2026-10-26 13:17:42 +08:00
2026-10-03 16:08:51 +08:00
2026-10-03 21:33:40 +08:00
2026-10-03 16:08:52 +08:00
2026-10-24 20:21:22 +08:00
2026-10-26 13:58:02 +08:00
2026-10-05 11:36:18 +08:00
2026-10-24 19:33:33 +08:00
2026-10-26 13:40:00 +08:00