64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
|
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
|
||
|
}
|