diff --git a/gorm.go b/gorm.go index 6c39063..6d13d0a 100644 --- a/gorm.go +++ b/gorm.go @@ -4,10 +4,13 @@ import ( "context" "errors" "fmt" + "go.uber.org/zap" gl "gorm.io/gorm/logger" "time" ) +var gormZap *zap.SugaredLogger + // 基于Gorm的日志实现 type gormLogger struct { gl.Config @@ -25,7 +28,7 @@ func (l gormLogger) Info(ctx context.Context, msg string, data ...interface{}) { if l.LogLevel >= gl.Info { // // 去掉第一行 // msg = strings.Join(strings.Split(msg, "\n")[1:], " ") - // Say.Info(msg) + // gormZap.Info(msg) // // l.Printf(msg, append([]interface{}{utils.FileWithLineNum()}, data...)...) } @@ -60,12 +63,12 @@ func (l gormLogger) Trace(ctx context.Context, begin time.Time, fc func() (strin switch { case err != nil && l.LogLevel >= gl.Error && (!errors.Is(err, gl.ErrRecordNotFound) || !l.IgnoreRecordNotFoundError): - Say.Errorf("%s -> %s", err.Error(), sql) + gormZap.Errorf("%s -> %s", err.Error(), sql) case elapsed > l.SlowThreshold && l.SlowThreshold != 0 && l.LogLevel >= gl.Warn: slowLog := fmt.Sprintf("SLOW SQL >= %v", l.SlowThreshold) - Say.Warnf("%v -> %v", slowLog, sql) + gormZap.Warnf("%v -> %v", slowLog, sql) case l.LogLevel == gl.Info: - Say.Info(msg) + gormZap.Info(msg) } } diff --git a/logger.go b/logger.go index 4a656a8..a30fc78 100644 --- a/logger.go +++ b/logger.go @@ -49,5 +49,7 @@ func InitLogger(c LogConfig) { // AddCallerSkip 输出的文件名和行号是调用封装函数的位置,而不是调用日志函数的位置 logger := zap.New(zapcore.NewTee(cores...), zap.AddCaller(), zap.AddCallerSkip(1)) Say = logger.Sugar() + // 给GORM单独生成一个 + gormZap = zap.New(zapcore.NewTee(cores...), zap.AddCaller(), zap.AddCallerSkip(3)).Sugar() zap.ReplaceGlobals(logger) }