36 lines
609 B
Go
36 lines
609 B
Go
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
|
|
}
|
|
}
|