Trace Id
go
type TraceIDKeyType struct{}
var TraceIDKey = TraceIDKeyType{}
func TraceIDMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
traceID := uuid.NewString()
c.Set("trace_id", traceID)
ctx := context.WithValue(c.Request.Context(), TraceIDKey, traceID)
c.Request = c.Request.WithContext(ctx)
c.Writer.Header().Set("X-Trace-ID", traceID)
c.Next()
}
}