sql: Refactor use of tables

This commit is contained in:
Tom Wiesing 2023-01-09 10:24:24 +01:00
parent 85fe5b5c5a
commit 73d821e320
No known key found for this signature in database
19 changed files with 191 additions and 83 deletions

View file

@ -25,6 +25,23 @@ func newGormLogger() logger.Interface {
}
}
// logLevelMap is the default
var logLevelMap = map[logger.LogLevel]zerolog.Level{
logger.Silent: zerolog.Disabled,
logger.Error: zerolog.ErrorLevel,
logger.Warn: zerolog.WarnLevel,
logger.Info: zerolog.DebugLevel,
logger.Info + 1: zerolog.TraceLevel,
}
func (*gormLogger) NewEvent(ctx context.Context, level logger.LogLevel) *zerolog.Event {
zl, ok := logLevelMap[level]
if !ok {
zl = zerolog.NoLevel
}
return zerolog.Ctx(ctx).WithLevel(zl)
}
func (gl *gormLogger) LogMode(level logger.LogLevel) logger.Interface {
new := *gl
new.Level = level
@ -35,19 +52,19 @@ func (gl *gormLogger) Info(ctx context.Context, format string, v ...interface{})
if gl.Level < logger.Info {
return
}
zerolog.Ctx(ctx).Info().Msgf(format, v...)
gl.NewEvent(ctx, logger.Info).Msgf(format, v...)
}
func (gl *gormLogger) Warn(ctx context.Context, format string, v ...interface{}) {
if gl.Level < logger.Warn {
return
}
zerolog.Ctx(ctx).Warn().Msgf(format, v...)
gl.NewEvent(ctx, logger.Warn).Msgf(format, v...)
}
func (gl *gormLogger) Error(ctx context.Context, format string, v ...interface{}) {
if gl.Level < logger.Error {
return
}
zerolog.Ctx(ctx).Error().Msgf(format, v...)
gl.NewEvent(ctx, logger.Error).Msgf(format, v...)
}
func (gl *gormLogger) Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error) {
if gl.Level < logger.Silent {
@ -60,15 +77,15 @@ func (gl *gormLogger) Trace(ctx context.Context, begin time.Time, fc func() (sql
sql, rows := fc()
src := utils.FileWithLineNum()
zerolog.Ctx(ctx).Err(err).Str("src", src).Int64("rows", rows).Dur("elapsed", elapsed).Str("sql", sql).Msg("GORM")
gl.NewEvent(ctx, logger.Error).Str("src", src).Int64("rows", rows).Dur("elapsed", elapsed).Str("sql", sql).Msg("GORM")
case elapsed > gl.SlowThreshold && gl.SlowThreshold != 0 && gl.Level >= logger.Warn:
sql, rows := fc()
src := utils.FileWithLineNum()
zerolog.Ctx(ctx).Warn().Str("src", src).Int64("rows", rows).Dur("elapsed", elapsed).Str("sql", sql).Msgf("GORM: Slow SQL >= ", gl.SlowThreshold)
gl.NewEvent(ctx, logger.Warn).Str("src", src).Int64("rows", rows).Dur("elapsed", elapsed).Str("sql", sql).Msgf("GORM: Slow SQL >= ", gl.SlowThreshold)
case gl.Level == logger.Info:
sql, rows := fc()
src := utils.FileWithLineNum()
zerolog.Ctx(ctx).Debug().Str("src", src).Int64("rows", rows).Dur("elapsed", elapsed).Str("sql", sql).Msg("GORM")
gl.NewEvent(ctx, logger.Info+1).Str("src", src).Int64("rows", rows).Dur("elapsed", elapsed).Str("sql", sql).Msg("GORM")
}
}