package utils import ( "context" "jlog" "github.com/gin-gonic/gin" ) type ctxKey string const _trace_key ctxKey = "trace_id" func TracingHandler(c *gin.Context) { traceId := jlog.NewTraceId() ctx := context.WithValue(c.Request.Context(), _trace_key, traceId) c.Request = c.Request.WithContext(ctx) c.Next() } func TraceLogger(ctx context.Context) *jlog.Logger { if traceID, ok := ctx.Value(_trace_key).(string); ok { return jlog.NewLoggerWithTraceId(traceID) } return jlog.NewLoggerWithTraceId("mqttResp111222333") } func GinLogger(c *gin.Context) *jlog.Logger { return TraceLogger(c.Request.Context()) }