diff options
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.go | 26 |
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) +} |