package logger import ( "io" "io/ioutil" "log" "os" ) var ( // Debug level Debug *log.Logger // Info level Info *log.Logger // Warning level Warning *log.Logger // Error level Error *log.Logger ) // Init logger level func Init(level string) { var debugHandle, infoHandle, warnHandle, errorHandle io.Writer debugHandle = os.Stdout infoHandle = os.Stdout warnHandle = os.Stderr errorHandle = os.Stderr switch level { case "info": debugHandle = ioutil.Discard case "warn": debugHandle = ioutil.Discard infoHandle = ioutil.Discard case "error": debugHandle = ioutil.Discard infoHandle = ioutil.Discard warnHandle = ioutil.Discard } commonFlags := log.LstdFlags | log.Lmicroseconds if level == "debug" { commonFlags = log.LstdFlags | log.Lmicroseconds | log.Lshortfile } Debug = log.New(debugHandle, Gray("DBG "), commonFlags) Info = log.New(infoHandle, Green("INF "), commonFlags) Warning = log.New(warnHandle, Orange("WRN "), commonFlags) Error = log.New(errorHandle, Red("ERR "), commonFlags) }