package middleware import ( "strings" "github.com/gin-gonic/gin" "github.com/google/uuid" "laic-backend/logger" ) // TraceMiddleware 为每个请求生成/透传 traceID,便于链路日志追踪 func TraceMiddleware() gin.HandlerFunc { return func(c *gin.Context) { traceID := c.GetHeader("X-Trace-Id") if traceID == "" { traceID = strings.ReplaceAll(uuid.New().String(), "-", "")[:16] } logger.SetTraceID(traceID) defer logger.CleanTraceID() c.Header("X-Trace-Id", traceID) c.Set("trace_id", traceID) c.Next() } }