package middleware import ( "lyra/internal/util" "time" "github.com/gin-gonic/gin" ) func AccessLogMiddleware() gin.HandlerFunc { return func(c *gin.Context) { start := time.Now() c.Next() ctx := c.Request.Context() util.Logger(ctx).InfoContext( ctx, "http request", "method", c.Request.Method, "path", c.Request.URL.Path, "status", c.Writer.Status(), "latency_ms", time.Since(start).Milliseconds(), "client_ip", c.ClientIP(), "user_agent", c.Request.UserAgent(), "response_size", c.Writer.Size(), ) } }