summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-logger/v2/level/levels.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/codeberg.org/gruf/go-logger/v2/level/levels.go')
-rw-r--r--vendor/codeberg.org/gruf/go-logger/v2/level/levels.go26
1 files changed, 20 insertions, 6 deletions
diff --git a/vendor/codeberg.org/gruf/go-logger/v2/level/levels.go b/vendor/codeberg.org/gruf/go-logger/v2/level/levels.go
index 1804bdb23..3b1715a3c 100644
--- a/vendor/codeberg.org/gruf/go-logger/v2/level/levels.go
+++ b/vendor/codeberg.org/gruf/go-logger/v2/level/levels.go
@@ -1,5 +1,10 @@
package level
+import (
+ "fmt"
+ "strings"
+)
+
// LEVEL defines a level of logging.
type LEVEL uint8
@@ -34,12 +39,6 @@ func Default() Levels {
ERROR: "ERROR",
FATAL: "FATAL",
PANIC: "PANIC",
-
- // we set these just so that
- // it can be debugged when someone
- // attempts to log with ALL/UNSET
- ALL: "{all}",
- UNSET: "{unset}",
}
}
@@ -47,3 +46,18 @@ func Default() Levels {
func (l Levels) Get(lvl LEVEL) string {
return l[int(lvl)]
}
+
+// Parse will attempt to decode a LEVEL from given string, checking (case insensitive) against strings in Levels.
+func (l Levels) Parse(s string) (LEVEL, error) {
+ // Ensure consistent casing
+ s = strings.ToUpper(s)
+
+ for lvl := LEVEL(0); int(lvl) < len(l); lvl++ {
+ // Compare to eqach known level
+ if strings.ToUpper(l[lvl]) == s {
+ return lvl, nil
+ }
+ }
+
+ return 0, fmt.Errorf("unrecognized log level: %s", s)
+}