gitee.com/woood2/luca@v1.0.4/cmd/consumer/internal/middleware/logging.go (about) 1 package middleware 2 3 import ( 4 "context" 5 "gitee.com/woood2/luca/cmd/consumer/internal/subscriber" 6 "gitee.com/woood2/luca/internal/trace" 7 "github.com/Shopify/sarama" 8 "go.uber.org/zap" 9 "time" 10 ) 11 12 func Logging(name string, logger *zap.Logger) subscriber.MsgMiddleware { 13 return func(next subscriber.MsgHandler) subscriber.MsgHandler { 14 return func(ctx context.Context, msg *sarama.ConsumerMessage, retry int)(commit bool) { 15 defer func(begin time.Time){ 16 logger.Info("Message claimed", 17 zap.String("name", name), 18 zap.String("traceID", trace.ID(ctx)), 19 zap.Int("retry", retry), 20 zap.Duration("cost", time.Since(begin)), 21 zap.Bool("commit", commit), 22 zap.String("msgValue", string(msg.Value)), 23 zap.Time("msgTime", msg.Timestamp), 24 zap.String("topic", msg.Topic), 25 ) 26 }(time.Now()) 27 return next(ctx, msg, retry) 28 } 29 } 30 }