package utils import ( "context" "github.com/hibiken/asynq" "go.uber.org/zap" ) // AsynqLogger Asynq日志适配器 type AsynqLogger struct { logger *zap.Logger } // NewAsynqLogger 创建Asynq日志适配器 func NewAsynqLogger(logger *zap.Logger) *AsynqLogger { return &AsynqLogger{ logger: logger, } } // Debug 调试日志 func (l *AsynqLogger) Debug(args ...interface{}) { l.logger.Debug("", zap.Any("args", args)) } // Info 信息日志 func (l *AsynqLogger) Info(args ...interface{}) { l.logger.Info("", zap.Any("args", args)) } // Warn 警告日志 func (l *AsynqLogger) Warn(args ...interface{}) { l.logger.Warn("", zap.Any("args", args)) } // Error 错误日志 func (l *AsynqLogger) Error(args ...interface{}) { l.logger.Error("", zap.Any("args", args)) } // Fatal 致命错误日志 func (l *AsynqLogger) Fatal(args ...interface{}) { l.logger.Fatal("", zap.Any("args", args)) } // Debugf 格式化调试日志 func (l *AsynqLogger) Debugf(format string, args ...interface{}) { l.logger.Debug("", zap.String("format", format), zap.Any("args", args)) } // Infof 格式化信息日志 func (l *AsynqLogger) Infof(format string, args ...interface{}) { l.logger.Info("", zap.String("format", format), zap.Any("args", args)) } // Warnf 格式化警告日志 func (l *AsynqLogger) Warnf(format string, args ...interface{}) { l.logger.Warn("", zap.String("format", format), zap.Any("args", args)) } // Errorf 格式化错误日志 func (l *AsynqLogger) Errorf(format string, args ...interface{}) { l.logger.Error("", zap.String("format", format), zap.Any("args", args)) } // Fatalf 格式化致命错误日志 func (l *AsynqLogger) Fatalf(format string, args ...interface{}) { l.logger.Fatal("", zap.String("format", format), zap.Any("args", args)) } // WithField 添加字段 func (l *AsynqLogger) WithField(key string, value interface{}) asynq.Logger { return &AsynqLogger{ logger: l.logger.With(zap.Any(key, value)), } } // WithFields 添加多个字段 func (l *AsynqLogger) WithFields(fields map[string]interface{}) asynq.Logger { zapFields := make([]zap.Field, 0, len(fields)) for k, v := range fields { zapFields = append(zapFields, zap.Any(k, v)) } return &AsynqLogger{ logger: l.logger.With(zapFields...), } } // WithError 添加错误字段 func (l *AsynqLogger) WithError(err error) asynq.Logger { return &AsynqLogger{ logger: l.logger.With(zap.Error(err)), } } // WithContext 添加上下文 func (l *AsynqLogger) WithContext(ctx context.Context) asynq.Logger { return l }