micro-account/pkg/common/log/gorm.go
2025-02-20 16:18:23 +08:00

45 lines
1021 B
Go

package log
import (
"context"
"fmt"
"go.uber.org/zap"
"gorm.io/gorm/logger"
"time"
)
func NewGormLogger() logger.Interface {
return &zapLogger{zapFakeLog.GetZapLogger()}
}
type zapLogger struct {
logger *zap.Logger
}
func (l *zapLogger) LogMode(level logger.LogLevel) logger.Interface {
newLogger := *l
return &newLogger
}
func (l *zapLogger) Info(ctx context.Context, s string, args ...interface{}) {
l.logger.Info(fmt.Sprintf(s, args...))
}
func (l *zapLogger) Warn(ctx context.Context, s string, args ...interface{}) {
l.logger.Warn(fmt.Sprintf(s, args...))
}
func (l *zapLogger) Error(ctx context.Context, s string, args ...interface{}) {
l.logger.Error(fmt.Sprintf(s, args...))
}
func (l *zapLogger) Trace(ctx context.Context, begin time.Time, fc func() (string, int64), err error) {
if err != nil {
l.Error(ctx, "[%.3fms] [error] %v", time.Since(begin).Seconds()*1000, err)
return
}
sql, rows := fc()
l.Info(ctx, "[%.3fms] [rows:%v] %s", time.Since(begin).Seconds()*1000, rows, sql)
}