From a793142c754dce7b4d653c24f141a2ec353e1531 Mon Sep 17 00:00:00 2001 From: Evyatar Yaffe Date: Tue, 7 Jan 2025 15:06:13 +0200 Subject: [PATCH] Enhance db.Scan with ParamsFilter - Issue 7336 - Suggestion --- logger/logger.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/logger/logger.go b/logger/logger.go index 253f0325..8088cde2 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -80,6 +80,11 @@ var ( }) // Recorder logger records running SQL into a recorder instance Recorder = traceRecorder{Interface: Default, BeginAt: time.Now()} + + // RecorderParamsFilter defaults to no-op, allows to be run-over by a different implementation + RecorderParamsFilter = func(ctx context.Context, sql string, params ...interface{}) (string, []interface{}) { + return sql, params + } ) // New initialize logger @@ -211,3 +216,10 @@ func (l *traceRecorder) Trace(ctx context.Context, begin time.Time, fc func() (s l.SQL, l.RowsAffected = fc() l.Err = err } + +func (l *traceRecorder) ParamsFilter(ctx context.Context, sql string, params ...interface{}) (string, []interface{}) { + if RecorderParamsFilter == nil { + return sql, params + } + return RecorderParamsFilter(ctx, sql, params...) +}