我想将跟踪 ID 添加到针对微服务的每个请求完成的日志记录中。我希望这与 springboot 应用程序类似,我们可以在 MDC 中设置跟踪 ID 并获取它并在日志记录时使用它。
我做了一些研究,发现 go lang 中的 MDC 等价物是上下文。所以,我已经在我的上下文中设置了跟踪 ID。现在的问题是我必须使用跟踪 ID 登录的地方,我需要将上下文传递给该函数,这是非常丑陋的方式。我正在为这个问题寻找更好的解决方案。
func HandlerFunction(f gin.HandlerFunc) gin.HandlerFunc{
return func(cxt *gin.Context) {
reqraceId := cxt.Request.Header.Get("trace-id")
requid , _ := uuid.NewRandom()
if reqTraceId == "" {
c.Request.Header.Set("trace-id", requid.String())
}
f(c)
}
}
犯罪嫌疑人X
慕妹3242003
DIEA
相关分类