new
This commit is contained in:
100
internal/infrastructure/task/utils/asynq_logger.go
Normal file
100
internal/infrastructure/task/utils/asynq_logger.go
Normal file
@@ -0,0 +1,100 @@
|
||||
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
|
||||
}
|
||||
17
internal/infrastructure/task/utils/task_id.go
Normal file
17
internal/infrastructure/task/utils/task_id.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
// GenerateTaskID 生成统一格式的任务ID (UUID)
|
||||
func GenerateTaskID() string {
|
||||
return uuid.New().String()
|
||||
}
|
||||
|
||||
// GenerateTaskIDWithPrefix 生成带前缀的任务ID (UUID)
|
||||
func GenerateTaskIDWithPrefix(prefix string) string {
|
||||
return fmt.Sprintf("%s-%s", prefix, uuid.New().String())
|
||||
}
|
||||
Reference in New Issue
Block a user