// Package middleware 提供 Gin 中间件:请求日志、panic 恢复、跨域。 package middleware import ( "log/slog" "time" "github.com/gin-gonic/gin" ) // Logger 打印每个 HTTP 请求的方法、路径、状态、耗时与客户端 IP。 func Logger() gin.HandlerFunc { return func(c *gin.Context) { start := time.Now() c.Next() slog.Info("http", "method", c.Request.Method, "path", c.Request.URL.Path, "status", c.Writer.Status(), "size", c.Writer.Size(), "duration_ms", time.Since(start).Milliseconds(), "client_ip", c.ClientIP(), ) } }