Lindenii Project Forge
Add color to logging functions
// Package clog provides basic logging utilities. package clog import ( "fmt" "os" ) func log(str string, keyvals []any) {
fmt.Fprint(os.Stderr, str + " ") for i, j := range keyvals { if i&1 == 0 { fmt.Fprintf(os.Stderr, "%v=", j) } else if i == len(keyvals)-1 { fmt.Fprintf(os.Stderr, "%#v", j) } else { fmt.Fprintf(os.Stderr, "%#v ", j)
fmt.Fprint(os.Stderr, str) if len(keyvals) != 0 { fmt.Fprint(os.Stderr, " ") for i, j := range keyvals { if i&1 == 0 { fmt.Fprintf(os.Stderr, "%v=", j) } else if i == len(keyvals)-1 { fmt.Fprintf(os.Stderr, "%#v", j) } else { fmt.Fprintf(os.Stderr, "%#v ", j) }
} } fmt.Fprintln(os.Stderr) } func Error(str string, keyvals ...any) {
log("ERROR "+str, keyvals)
log("\x1b[1;91mERROR: "+str, keyvals) } func Warn(str string, keyvals ...any) { log("\x1b[1;93mWARNING: "+str, keyvals)
} func Debug(str string, keyvals ...any) {
log("DEBUG "+str, keyvals)
log("\x1b[90mDEBUG: "+str, keyvals)
} func Info(str string, keyvals ...any) {
log("INFO "+str, keyvals)
log("\x1b[0mINFO: "+str, keyvals)
} func Fatal(exit int, str string, keyvals ...any) {
log("FATAL "+str, keyvals)
log("\x1b[1;35mFATAL: "+str, keyvals)
os.Exit(exit) }