package log import ( "fmt" "velvettear/go-scan/util/date" ) // exported functions func Debug(logMessage string, logExtras ...string) { trace(0, logMessage, logExtras...) } func Info(logMessage string, logExtras ...string) { trace(1, logMessage, logExtras...) } func Warning(logMessage string, logExtras ...string) { trace(2, logMessage, logExtras...) } func Error(logMessage string, logExtras ...string) { trace(3, logMessage, logExtras...) } // unexported functions func trace(logLevel int, logMessage string, logExtras ...string) { if len(logMessage) == 0 { return } extras := "" for index := 0; index < len(logExtras); index++ { tmp := logExtras[index] if len(tmp) == 0 { continue } if index > 0 { extras += " | " } extras += logExtras[index] } if len(extras) > 0 { logMessage = logMessage + " (" + extras + ")" } fmt.Println(buildLogMessage(getPrefixForLogLevel(logLevel), logMessage)) } func getPrefixForLogLevel(loglevel int) string { switch loglevel { case 3: return "error" case 2: return "warning" case 1: return "info" default: return "debug" } } func buildLogMessage(prefix string, message string) string { timestamp := date.New() return timestamp.GetFormattedDate() + " [" + prefix + "]" + " > " + message }