update

Changed files
+14 -7
internal
log
+14 -7
internal/log/log.go
··· 6 "log" 7 "os" 8 "strings" 9 ) 10 11 var ( ··· 21 verboseWriter = os.Stdout 22 } 23 24 - infoLog = log.New(infoWriter, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile) 25 - verboseLog = log.New(verboseWriter, "VERBOSE: ", log.Ldate|log.Ltime|log.Lshortfile) 26 - errorLog = log.New(os.Stderr, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile) 27 } 28 29 func Verbose(format string, v ...interface{}) { 30 - verboseLog.Printf(format, v...) 31 } 32 33 func Info(format string, v ...interface{}) { 34 - infoLog.Printf(format, v...) 35 } 36 37 func Error(format string, v ...interface{}) { 38 - errorLog.Printf(format, v...) 39 } 40 41 func Fatal(format string, v ...interface{}) { 42 - errorLog.Fatalf(format, v...) 43 } 44 45 // Banner prints a startup banner
··· 6 "log" 7 "os" 8 "strings" 9 + "time" 10 ) 11 12 var ( ··· 22 verboseWriter = os.Stdout 23 } 24 25 + // Use no flags, we'll add our own ISO 8601 timestamps 26 + infoLog = log.New(infoWriter, "", 0) 27 + verboseLog = log.New(verboseWriter, "", 0) 28 + errorLog = log.New(os.Stderr, "", 0) 29 + } 30 + 31 + // timestamp returns current time in ISO 8601 format 32 + func timestamp() string { 33 + return time.Now().Format(time.RFC3339) 34 } 35 36 func Verbose(format string, v ...interface{}) { 37 + verboseLog.Printf("%s [VERBOSE] %s", timestamp(), fmt.Sprintf(format, v...)) 38 } 39 40 func Info(format string, v ...interface{}) { 41 + infoLog.Printf("%s [INFO] %s", timestamp(), fmt.Sprintf(format, v...)) 42 } 43 44 func Error(format string, v ...interface{}) { 45 + errorLog.Printf("%s [ERROR] %s", timestamp(), fmt.Sprintf(format, v...)) 46 } 47 48 func Fatal(format string, v ...interface{}) { 49 + errorLog.Fatalf("%s [FATAL] %s", timestamp(), fmt.Sprintf(format, v...)) 50 } 51 52 // Banner prints a startup banner