package middlewares import ( "time" "github.com/gin-gonic/gin" "go.uber.org/zap" "goalfymax-admin/pkg/utils" ) // LoggingMiddleware 日志中间件 func LoggingMiddleware(logger *utils.Logger) gin.HandlerFunc { return gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string { // 记录请求日志 logger.Info("HTTP请求", zap.String("method", param.Method), zap.String("path", param.Path), zap.Int("status", param.StatusCode), zap.Duration("latency", param.Latency), zap.String("client_ip", param.ClientIP), zap.String("user_agent", param.Request.UserAgent()), ) return "" }) } // RequestLogMiddleware 请求日志中间件 func RequestLogMiddleware(logger *utils.Logger) gin.HandlerFunc { return func(c *gin.Context) { start := time.Now() // 处理请求 c.Next() // 记录请求信息 latency := time.Since(start) logger.Info("请求处理完成", zap.String("method", c.Request.Method), zap.String("path", c.Request.URL.Path), zap.Int("status", c.Writer.Status()), zap.Duration("latency", latency), zap.String("client_ip", c.ClientIP()), zap.String("user_agent", c.Request.UserAgent()), ) } }