package middleware import ( "allapp-go/pkg/logger" "time" "github.com/gofiber/fiber/v3" "go.uber.org/zap" ) func Logger() fiber.Handler { return func(c fiber.Ctx) error { traceID := c.RequestID() logger.SetTraceID(c, traceID) start := time.Now() err := c.Next() // ✅ 计算耗时 cost := time.Since(start) log := logger.FromCtx(c.Context()) log.Info("HTTP 请求", zap.String("method", c.Method()), zap.String("path", c.Path()), zap.Int("status", c.Response().StatusCode()), zap.String("ip", c.IP()), zap.String("duration", cost.String()), ) return err } }