diff options
Diffstat (limited to 'vendor/codeberg.org/gruf/go-logger')
| -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) +}  | 
