From dfed95a0aeeed0d455fde7f20efeceb5e1646c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorben=20G=C3=BCnther?= Date: Sun, 9 Oct 2022 03:04:07 +0200 Subject: [PATCH] Add function to parse level from string --- log.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/log.go b/log.go index 1082f38..3776a3c 100644 --- a/log.go +++ b/log.go @@ -1,9 +1,12 @@ package log import ( + "errors" + "fmt" "io" "log" "os" + "strings" ) type Level int @@ -15,6 +18,8 @@ const ( Debug ) +var ErrInvalidLevel = errors.New("cannot parse log-level from string") + type Logger struct { *log.Logger level Level @@ -32,6 +37,23 @@ func (l *Logger) SetLevel(level Level) { l.level = level } +func (l *Logger) ParseLevel(level string) error { + switch strings.ToLower(level) { + case "error": + l.level = Error + case "warning": + l.level = Warning + case "info": + l.level = Info + case "debug": + l.level = Debug + default: + return fmt.Errorf("%w: %s", ErrInvalidLevel, level) + } + + return nil +} + func (l *Logger) Fatalf(format string, v ...interface{}) { format = "FATAL: " + format l.Logger.Fatalf(format, v...) -- 2.44.0