DeployHelper/internal/middleware/zap_log.go

28 lines
558 B
Go

package middleware
import (
"ego/pkg/logger"
"time"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
// GinZapLogger Gin 日志中间件
func GinZapLogger() gin.HandlerFunc {
return func(c *gin.Context) {
start := time.Now()
trackID := logger.GetTrackID(c)
c.Next()
// 记录请求日志
logger.Info(c, "Handled request",
zap.String("trackID", trackID),
zap.String("method", c.Request.Method),
zap.String("path", c.Request.URL.Path),
zap.Int("status", c.Writer.Status()),
zap.Duration("duration", time.Since(start)),
)
}
}