75 lines
1.8 KiB
Go
75 lines
1.8 KiB
Go
package util
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
type colorFormat string
|
|
type LogLevel int
|
|
|
|
const (
|
|
BLUE colorFormat = "\033[34m"
|
|
GREEN colorFormat = "\033[32m"
|
|
LIGHT_GREEN colorFormat = "\033[92m"
|
|
YELLOW colorFormat = "\033[33m"
|
|
LIGHT_YELLOW colorFormat = "\033[93m"
|
|
RED colorFormat = "\033[31m"
|
|
LIGHT_RED colorFormat = "\033[91m"
|
|
WHITE colorFormat = "\033[97m"
|
|
RESET colorFormat = "\033[0m"
|
|
)
|
|
|
|
const (
|
|
NOLOG LogLevel = iota
|
|
INFO
|
|
CORRECT
|
|
WARNING
|
|
ERROR
|
|
)
|
|
|
|
var colorPrint = map[LogLevel]colorFormat{
|
|
NOLOG: "",
|
|
INFO: BLUE + "[INFO]" + RESET,
|
|
CORRECT: GREEN + "[OK ]" + LIGHT_GREEN,
|
|
WARNING: YELLOW + "[WARN]" + LIGHT_YELLOW,
|
|
ERROR: RED + "[ERR ]" + LIGHT_RED,
|
|
}
|
|
|
|
var minimumlog = NOLOG
|
|
|
|
func Logformat(level LogLevel, format string, args ...interface{}) {
|
|
if level < minimumlog {
|
|
return
|
|
}
|
|
|
|
header := colorPrint[level]
|
|
message := fmt.Sprintf(format, args...)
|
|
currentTime := time.Now()
|
|
time := fmt.Sprintf("[%02d/%02d/%d %02d:%02d:%02d]", currentTime.Day(), currentTime.Month(), currentTime.Year(), currentTime.Hour(), currentTime.Minute(), currentTime.Second())
|
|
if level == NOLOG {
|
|
fmt.Printf("%s\t\t%s", time, message)
|
|
} else {
|
|
fmt.Printf("%s%s\t%s%s", header, time, message, RESET)
|
|
}
|
|
}
|
|
|
|
func Logformatrn(level LogLevel, format string, args ...interface{}) {
|
|
if level < minimumlog {
|
|
return
|
|
}
|
|
|
|
header := colorPrint[level]
|
|
message := fmt.Sprintf(format, args...)
|
|
currentTime := time.Now()
|
|
time := fmt.Sprintf("[%02d/%02d/%d %02d:%02d:%02d]", currentTime.Day(), currentTime.Month(), currentTime.Year(), currentTime.Hour(), currentTime.Minute(), currentTime.Second())
|
|
if level == NOLOG {
|
|
fmt.Printf("\r%s\t\t%s", time, message)
|
|
} else {
|
|
fmt.Printf("\r%s%s\t%s%s", header, time, message, RESET)
|
|
}
|
|
}
|
|
|
|
func SetLevel(level LogLevel) {
|
|
minimumlog = level
|
|
}
|