fix: 完成商务迁移复核与接口优化并清理历史资料
This commit is contained in:
@@ -91,15 +91,31 @@ func (g *Logger) Trace(ctx context.Context, begin time.Time, query func() (strin
|
||||
return
|
||||
}
|
||||
elapsed := time.Since(begin)
|
||||
logError := queryErr != nil && g.level >= logger.Error && !errors.Is(queryErr, logger.ErrRecordNotFound)
|
||||
logSlow := elapsed > g.slowThreshold && g.level >= logger.Warn
|
||||
logInfo := g.level >= logger.Info
|
||||
if !logError && !logSlow && !logInfo {
|
||||
// query 会展开全部 SQL 参数;未启用的日志不应承担大 IN 查询的格式化成本。
|
||||
return
|
||||
}
|
||||
level := slog.LevelInfo
|
||||
if logError {
|
||||
level = slog.LevelError
|
||||
} else if logSlow {
|
||||
level = slog.LevelWarn
|
||||
}
|
||||
if !g.logger.Enabled(ctx, level) {
|
||||
return
|
||||
}
|
||||
sql, rows := query()
|
||||
fields := []any{"mod", "sql", "gorm_logger", true, "sql", sql, "rows", rows, "elapsed_ms", elapsed.Milliseconds()}
|
||||
switch {
|
||||
case queryErr != nil && g.level >= logger.Error && !errors.Is(queryErr, logger.ErrRecordNotFound):
|
||||
case logError:
|
||||
fields = append(fields, "error", queryErr)
|
||||
g.logger.ErrorContext(ctx, "SQL 执行错误", fields...)
|
||||
case elapsed > g.slowThreshold && g.level >= logger.Warn:
|
||||
case logSlow:
|
||||
g.logger.WarnContext(ctx, "SQL 慢查询", fields...)
|
||||
case g.level >= logger.Info:
|
||||
case logInfo:
|
||||
g.logger.InfoContext(ctx, "SQL", fields...)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user