2022-06-24 15:31:48 +02:00
|
|
|
package log
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2022-06-30 17:01:54 +02:00
|
|
|
"os"
|
2022-06-24 15:31:48 +02:00
|
|
|
"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...)
|
|
|
|
}
|
|
|
|
|
2022-06-30 17:01:54 +02:00
|
|
|
func Fatal(logMessage string, logExtras ...string) {
|
|
|
|
trace(4, logMessage, logExtras...)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
2022-06-24 15:31:48 +02:00
|
|
|
// 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 {
|
2022-06-30 17:01:54 +02:00
|
|
|
case 4:
|
|
|
|
return "fatal"
|
2022-06-24 15:31:48 +02:00
|
|
|
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
|
|
|
|
}
|