# HG changeset patch # User Christophe de Vienne <christophe@cdevienne.info> # Date 1643376549 -3600 # Fri Jan 28 14:29:09 2022 +0100 # Node ID d9423fd8e23ba3708ecffb6daa74ee6401138f00 # Parent 88cf4ccfe86f10bd51f8b659695a3d61b297e971 SQLTrace: limit argument size to 512 bytes diff --git a/database/sql.go b/database/sql.go --- a/database/sql.go +++ b/database/sql.go @@ -3,6 +3,7 @@ import ( "context" "database/sql" + "encoding/json" "strings" "github.com/Masterminds/squirrel" @@ -27,7 +28,18 @@ if log != nil && log.GetLevel() < 0 { arr := zerolog.Arr() for _, arg := range args { - arr.Interface(arg) + b, err := json.Marshal(arg) + if err != nil { + arr.Interface(arg) + } else { + if len(b) > 512 { + b, _ = json.Marshal(map[string]interface{}{ + "arg first 512 bytes": b[:512], + "len": len(b), + }) + } + arr.RawJSON(b) + } } logger := log.With().Array("args", arr).Logger() logger.Trace().Msg("SQL: " + sql)