diff --git a/gorm.go b/gorm.go index ad50cc6..a2259fa 100644 --- a/gorm.go +++ b/gorm.go @@ -9,6 +9,7 @@ import ( ) type GORMLogger struct { + Threshold int64 } func (d *GORMLogger) LogMode(level logger.LogLevel) logger.Interface { @@ -33,6 +34,10 @@ func (d *GORMLogger) Trace(ctx context.Context, begin time.Time, fc func() (sql if err != nil && err != gorm.ErrRecordNotFound { log.Errorf("[SQL]sql=%s affect=%d cost=%dms error=%v", sql, affects, time.Since(begin).Milliseconds(), err) } else { - log.Debugf("[SQL]sql=%s affect=%d cost=%dms", sql, affects, time.Since(begin).Milliseconds()) + if d.Threshold > 0 && time.Since(begin).Milliseconds() > d.Threshold { + log.Errorf("[SQL]sql=%s affect=%d cost=%dms", sql, affects, time.Since(begin).Milliseconds()) + } else { + log.Debugf("[SQL]sql=%s affect=%d cost=%dms", sql, affects, time.Since(begin).Milliseconds()) + } } }