13 条回复  ·  1459 次点击
Immortal 小成 2025-10-10 15:08:07
@aababc #9 不用动 Request 吧,把处理后的 slog 和 db 可以直接放在入口的 ctx 里,实际逻辑和日志用自定义的 Ctx 去处理,就能统一注入 TraceID 了?
veni2023 小成 2025-10-10 15:40:23
请求进来时 gorm 和 slog 都关联对应的请求 traceID ,不就可以了吗?这两应该都支持接入 OpenTelemetry
iyaozhen 初学 2025-10-10 15:48:26
你的想法不能算错,但有些问题你没考虑到 1. sql 是不能随便显示的,如果混在 error 中,就可能打印在日志(这在大公司是不允许的),甚至返回给用户 2. 日志打印还是有技巧的,既不能多也不能少,你应该靠业务中的日志定位问题,而不是 sql 。类似打印 request 请求体、sql 原文,是不合规的 你的诉求 gorm 应该能实现,但我没这样需求,具体没弄过
Sendya 初学 2025-10-10 16:00:30
我这是通过 gorm plugin 和 gorm hooks 增加 gorm 的执行 before,after 的流程,在里面处理想要记录的信息,虽然我这边是记录上报给 opentelemetry, 你想记录日志也是同理的,这样还不用入侵你原始业务代码 https://github.com/omalloc/contrib/blob/main/kratos/orm/gorm_tracing_callbacks.go#L81
12
返回顶部