package gorm import "fmt" var logger interface{} type Logger interface { Print(v ...interface{}) } func Print(level string, v ...interface{}) { args := []interface{}{level} if l, ok := logger.(Logger); ok { l.Print(append(args, v...)) } else { fmt.Println("logger haven't been set,", append(args, v...)) } } func warn(v ...interface{}) { Print("warn", v...) } func info(v ...interface{}) { Print("info", v...) } func debug(v ...interface{}) { Print("debug", v...) }