diff --git a/database/sql.go b/database/sql.go
index 88cf4ccfe86f10bd51f8b659695a3d61b297e971_ZGF0YWJhc2Uvc3FsLmdv..d9423fd8e23ba3708ecffb6daa74ee6401138f00_ZGF0YWJhc2Uvc3FsLmdv 100644
--- 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)