package middleware import ( "context" "time" "github.com/cloudwego/hertz/pkg/app" "github.com/cloudwego/hertz/pkg/common/hlog" "github.com/hertz-contrib/requestid" "go.uber.org/zap" ) func Log() app.HandlerFunc { return func(c context.Context, ctx *app.RequestContext) { start := time.Now() // 记录开始时间 // 执行后续处理 ctx.Next(c) // 计算耗时 duration := time.Since(start).Milliseconds() hlog.Info("请求完成", zap.String("RequestID", requestid.Get(ctx)), zap.String("IP", ctx.ClientIP()), zap.String("Method", string(ctx.Method())), zap.String("Path", string(ctx.Path())), zap.Int("Status", ctx.GetResponse().StatusCode()), zap.Int64("Duration", duration), ) } }