package logc import "fmt" type printer func (v ...interface{}) type logPrinter interface { Fatal(v ...interface{}) Error(v ...interface{}) Warn(v ...interface{}) Info(v ...interface{}) } type Log struct { FatalLog printer ErrorLog printer WarnLog printer InfoLog printer } func (p Log)Fatal(v ...interface{}) { if nil == p.FatalLog { fmt.Println(v...) } else { p.FatalLog(v...) } } func (p Log)Error(v ...interface{}) { if nil == p.ErrorLog { fmt.Println(v...) } else { p.ErrorLog(v...) } } func (p Log)Warn(v ...interface{}) { if nil == p.WarnLog { fmt.Println(v...) } else { p.WarnLog(v...) } } func (p Log)Info(v ...interface{}) { if nil == p.InfoLog { fmt.Println(v...) } else { p.InfoLog(v...) } }