Files

75 lines
1.3 KiB
Go
Raw Permalink Normal View History

2021-12-05 17:47:00 -05:00
package log
2021-12-16 15:54:05 -05:00
import (
"fmt"
"strconv"
)
2021-12-05 17:47:00 -05:00
const (
2021-12-08 16:31:05 -05:00
NONE = 0
NORMAL = 1
DEBUG = 2
DIAGNOSTIC = 3
2021-12-16 15:54:05 -05:00
NEVER = 99
2021-12-05 17:47:00 -05:00
)
2021-12-15 16:52:42 -05:00
const (
CONSOLE = 1
FILE = 2
)
2021-12-05 17:47:00 -05:00
var LOG_LEVEL = NORMAL
2021-12-15 16:52:42 -05:00
var LOG_TIMESTAMP = false
var LOG_OUTPUT = CONSOLE
func SetLogLevel(level int) {
if level >= NONE && level <= DIAGNOSTIC {
LOG_LEVEL = level
}
}
2021-12-05 17:47:00 -05:00
2021-12-16 15:54:05 -05:00
func SetLogLevelFromArgs(argMap map[string]string) {
logLevelStr, found := argMap["log"]
2021-12-28 09:55:06 -05:00
if found && logLevelStr != "" {
2021-12-16 15:54:05 -05:00
logLevel, err := NORMAL, error(nil)
switch logLevelStr {
case "NONE", "None", "none":
logLevel = NONE
case "NORMAL", "Normal", "normal":
logLevel = NORMAL
case "DEBUG", "Debug", "debug":
logLevel = DEBUG
case "DIAG", "DIAGNOSTIC", "Diag", "Diagnostic", "diag", "diagnostic":
logLevel = DIAGNOSTIC
default:
logLevel, err = strconv.Atoi(logLevelStr)
}
if err != nil {
panic("Error when parsing log level")
}
SetLogLevel(logLevel)
}
}
2021-12-05 17:47:00 -05:00
func Print(minLevel int, a ...interface{}) (int, error) {
if LOG_LEVEL >= minLevel {
return fmt.Print(a...)
}
return 0, nil
}
func Println(minLevel int, a ...interface{}) (int, error) {
if LOG_LEVEL >= minLevel {
return fmt.Println(a...)
}
return 0, nil
}
func Printf(minLevel int, format string, a ...interface{}) (int, error) {
if LOG_LEVEL >= minLevel {
return fmt.Printf(format, a...)
}
return 0, nil
}