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
 | |
| } |