Disable gorm log.

This commit is contained in:
leonardaustin 2015-05-07 14:20:45 +01:00
parent a5ddc56b7d
commit 51c6ee46c1

View File

@ -24,44 +24,48 @@ var defaultLogger = Logger{log.New(os.Stdout, "\r\n", 0)}
var sqlRegexp = regexp.MustCompile(`(\$\d+)|\?`) var sqlRegexp = regexp.MustCompile(`(\$\d+)|\?`)
func (logger Logger) Print(values ...interface{}) { func (logger Logger) Print(values ...interface{}) {
if len(values) > 1 {
level := values[0]
currentTime := "\n\033[33m[" + NowFunc().Format("2006-01-02 15:04:05") + "]\033[0m"
source := fmt.Sprintf("\033[35m(%v)\033[0m", values[1])
messages := []interface{}{source, currentTime}
if level == "sql" { if gormLog := os.Getenv("GORM_LOG_ON"); gormLog != "" {
// duration
messages = append(messages, fmt.Sprintf(" \033[36;1m[%.2fms]\033[0m ", float64(values[2].(time.Duration).Nanoseconds()/1e4)/100.0)) if len(values) > 1 {
// sql level := values[0]
var formatedValues []interface{} currentTime := "\n\033[33m[" + NowFunc().Format("2006-01-02 15:04:05") + "]\033[0m"
for _, value := range values[4].([]interface{}) { source := fmt.Sprintf("\033[35m(%v)\033[0m", values[1])
indirectValue := reflect.Indirect(reflect.ValueOf(value)) messages := []interface{}{source, currentTime}
if indirectValue.IsValid() {
value = indirectValue.Interface() if level == "sql" {
if t, ok := value.(time.Time); ok { // duration
formatedValues = append(formatedValues, fmt.Sprintf("'%v'", t.Format(time.RFC3339))) messages = append(messages, fmt.Sprintf(" \033[36;1m[%.2fms]\033[0m ", float64(values[2].(time.Duration).Nanoseconds()/1e4)/100.0))
} else if b, ok := value.([]byte); ok { // sql
formatedValues = append(formatedValues, fmt.Sprintf("'%v'", string(b))) var formatedValues []interface{}
} else if r, ok := value.(driver.Valuer); ok { for _, value := range values[4].([]interface{}) {
if value, err := r.Value(); err == nil && value != nil { indirectValue := reflect.Indirect(reflect.ValueOf(value))
formatedValues = append(formatedValues, fmt.Sprintf("'%v'", value)) if indirectValue.IsValid() {
value = indirectValue.Interface()
if t, ok := value.(time.Time); ok {
formatedValues = append(formatedValues, fmt.Sprintf("'%v'", t.Format(time.RFC3339)))
} else if b, ok := value.([]byte); ok {
formatedValues = append(formatedValues, fmt.Sprintf("'%v'", string(b)))
} else if r, ok := value.(driver.Valuer); ok {
if value, err := r.Value(); err == nil && value != nil {
formatedValues = append(formatedValues, fmt.Sprintf("'%v'", value))
} else {
formatedValues = append(formatedValues, "NULL")
}
} else { } else {
formatedValues = append(formatedValues, "NULL") formatedValues = append(formatedValues, fmt.Sprintf("'%v'", value))
} }
} else { } else {
formatedValues = append(formatedValues, fmt.Sprintf("'%v'", value)) formatedValues = append(formatedValues, fmt.Sprintf("'%v'", value))
} }
} else {
formatedValues = append(formatedValues, fmt.Sprintf("'%v'", value))
} }
messages = append(messages, fmt.Sprintf(sqlRegexp.ReplaceAllString(values[3].(string), "%v"), formatedValues...))
} else {
messages = append(messages, "\033[31;1m")
messages = append(messages, values[2:]...)
messages = append(messages, "\033[0m")
} }
messages = append(messages, fmt.Sprintf(sqlRegexp.ReplaceAllString(values[3].(string), "%v"), formatedValues...)) logger.Println(messages...)
} else {
messages = append(messages, "\033[31;1m")
messages = append(messages, values[2:]...)
messages = append(messages, "\033[0m")
} }
logger.Println(messages...)
} }
} }