package matrix import ( "fmt" "log" ) type logger struct{ level uint } func (l logger) Error(message string, args ...interface{}) { if l.level > 0 { logLevel("error", message, args...) } } func (l logger) Warn(message string, args ...interface{}) { if l.level > 1 { logLevel("warning", message, args...) } } func (l logger) Debug(message string, args ...interface{}) { if l.level > 2 { logLevel("debug", message, args...) } } func (l logger) Trace(message string, args ...interface{}) { if l.level > 3 { logLevel("trace", message, args...) } } func logLevel(level, message string, args ...interface{}) { log.Print("[", level, "] ", fmt.Sprintf(message, args...)) }