100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | 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 | ||
|  | } |