53 lines
857 B
Go
53 lines
857 B
Go
package logger
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
var level = "info"
|
|
|
|
func Init(lvl string) {
|
|
level = strings.ToLower(lvl)
|
|
|
|
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
|
|
log.Printf("[LOGGER] initialized with level: %s", level)
|
|
}
|
|
|
|
func Info(format string, v ...any) {
|
|
if levelAllowed("info") {
|
|
log.Printf("[INFO] "+format, v...)
|
|
}
|
|
}
|
|
|
|
func Warn(format string, v ...any) {
|
|
if levelAllowed("warn") {
|
|
log.Printf("[WARN] "+format, v...)
|
|
}
|
|
}
|
|
|
|
func Error(format string, v ...any) {
|
|
if levelAllowed("error") {
|
|
log.Printf("[ERROR] "+format, v...)
|
|
}
|
|
}
|
|
|
|
func Fatal(format string, v ...any) {
|
|
log.Printf("[FATAL] "+format, v...)
|
|
os.Exit(1)
|
|
}
|
|
|
|
// helpers
|
|
|
|
func levelAllowed(l string) bool {
|
|
levels := map[string]int{
|
|
"debug": 1,
|
|
"info": 2,
|
|
"warn": 3,
|
|
"error": 4,
|
|
"fatal": 5,
|
|
}
|
|
|
|
return levels[strings.ToLower(level)] <= levels[l]
|
|
} |