Files
2026-02-26 22:19:26 +08:00

34 lines
577 B
Go

package middleware
import (
"context"
"time"
"github.com/gofiber/fiber/v3"
"github.com/gofiber/fiber/v3/log"
)
func Logger() fiber.Handler {
return func(c fiber.Ctx) error {
ctx := context.WithValue(c.Context(), "request_id", c.RequestID())
c.SetContext(ctx)
start := time.Now()
err := c.Next()
duration := time.Since(start)
// 记录日志
log.WithContext(c.Context()).Infow("API Request",
"method", c.Method(),
"path", c.Path(),
"status", c.Response().StatusCode(),
"duration", duration.String(),
"ip", c.IP(),
)
return err
}
}