MCPcopy
hub / github.com/kingwrcy/moments / Trace

Method Trace

backend/db/db.go:50–67  ·  view source on GitHub ↗
(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error)

Source from the content-addressed store, hash-verified

48}
49
50func (m myLog) Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error) {
51 if !m.cfg.EnableSQLOutput {
52 return
53 }
54 elapsed := time.Since(begin)
55 sql, _ := fc()
56 if err != nil && !(errors.Is(err, gorm.ErrRecordNotFound) && m.SkipErrRecordNotFound) {
57 m.log.Error().Msgf("[GORM] query error,source = %s ,sql = %s,error= %s", utils.FileWithLineNum(), sql, err)
58 return
59 }
60
61 if m.SlowThreshold != 0 && elapsed > m.SlowThreshold {
62 m.log.Warn().Msgf("[GORM] source = %s slow query sql = %s,耗时 = %s", utils.FileWithLineNum(), sql, elapsed)
63 return
64 }
65
66 m.log.Debug().Msgf("[GORM] query source = %s sql = %s,耗时 = %s", utils.FileWithLineNum(), sql, elapsed)
67}
68
69func NewDB(injector do.Injector) (*gorm.DB, error) {
70 cfg := do.MustInvoke[*vo.AppConfig](injector)

Callers

nothing calls this directly

Calls 2

ErrorMethod · 0.80
WarnMethod · 0.80

Tested by

no test coverage detected