From 05612d3173a9b0f6410a75ba7101da635def2aa7 Mon Sep 17 00:00:00 2001 From: zaneli Date: Wed, 6 Feb 2019 17:05:47 +0900 Subject: [PATCH] not to quote int, float and bool value in query log --- logger.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/logger.go b/logger.go index 4324a2e4..4e7376eb 100644 --- a/logger.go +++ b/logger.go @@ -27,6 +27,21 @@ func isPrintable(s string) bool { return true } +func isNumber(v interface{}) bool { + switch v.(type) { + case int, int8, int16, int32, int64, + uint, uint8, uint16, uint32, uint64, uintptr, + float32, float64: + return true + } + return false +} + +func isBool(v interface{}) bool { + _, ok := v.(bool) + return ok +} + var LogFormatter = func(values ...interface{}) (messages []interface{}) { if len(values) > 1 { var ( @@ -56,6 +71,8 @@ var LogFormatter = func(values ...interface{}) (messages []interface{}) { } else { formattedValues = append(formattedValues, "''") } + } else if isNumber(value) || isBool(value) { + formattedValues = append(formattedValues, fmt.Sprint(value)) } else if r, ok := value.(driver.Valuer); ok { if value, err := r.Value(); err == nil && value != nil { formattedValues = append(formattedValues, fmt.Sprintf("'%v'", value))