summaryrefslogtreecommitdiff
path: root/internal/io/dlog/level.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2021-09-19 13:22:59 +0300
committerPaul Buetow <paul@buetow.org>2021-10-02 12:26:29 +0300
commitfe3e68afd99d8ea246be52893730f987e138ec24 (patch)
tree726e0914730912e0a3b223f7b37facc05ba31140 /internal/io/dlog/level.go
parentabeac87aec44249bf67f1b0eca471a31086265ca (diff)
move args to config package
logger package rewrite as dlog
Diffstat (limited to 'internal/io/dlog/level.go')
-rw-r--r--internal/io/dlog/level.go89
1 files changed, 89 insertions, 0 deletions
diff --git a/internal/io/dlog/level.go b/internal/io/dlog/level.go
new file mode 100644
index 0000000..84550f0
--- /dev/null
+++ b/internal/io/dlog/level.go
@@ -0,0 +1,89 @@
+package dlog
+
+import (
+ "fmt"
+ "strings"
+)
+
+type level int
+
+const (
+ FATAL level = iota
+ ERROR level = iota
+ WARN level = iota
+ INFO level = iota
+ DEFAULT level = iota
+ VERBOSE level = iota
+ DEBUG level = iota
+ DEVEL level = iota
+ TRACE level = iota
+ ALL level = iota
+)
+
+var allLevels = []level{
+ FATAL,
+ ERROR,
+ WARN,
+ INFO,
+ DEFAULT,
+ VERBOSE,
+ DEBUG,
+ DEVEL,
+ TRACE,
+ ALL,
+}
+
+func newLevel(l string) level {
+ switch strings.ToUpper(l) {
+ case "FATAL":
+ return FATAL
+ case "ERROR":
+ return ERROR
+ case "WARN":
+ return WARN
+ case "INFO":
+ return INFO
+ case "":
+ fallthrough
+ case "DEFAULT":
+ return DEFAULT
+ case "VERBOSE":
+ return VERBOSE
+ case "DEBUG":
+ return DEBUG
+ case "DEVEL":
+ return DEVEL
+ case "TRACE":
+ return TRACE
+ case "ALL":
+ return ALL
+ }
+ panic(fmt.Sprintf("Unknown log level %s, must be one of: %v", l, allLevels))
+}
+
+func (l level) String() string {
+ switch l {
+ case FATAL:
+ return "FATAL"
+ case ERROR:
+ return "ERROR"
+ case WARN:
+ return "WARN"
+ case INFO:
+ return "INFO"
+ case DEFAULT:
+ return "DEFAULT"
+ case VERBOSE:
+ return "VERBOSE"
+ case DEBUG:
+ return "DEBUG"
+ case DEVEL:
+ return "DEVEL"
+ case TRACE:
+ return "TRACE"
+ case ALL:
+ return "ALL"
+ }
+
+ panic("Unknown log level " + fmt.Sprintf("%d", l))
+}