From d5add47d2503917bc0354645545a3f40f91c2bc6 Mon Sep 17 00:00:00 2001 From: Elara Musayelyan Date: Wed, 4 Jan 2023 22:40:16 +0000 Subject: [PATCH] Add ParseLogLevel() function --- main.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/main.go b/main.go index fbc18a9..d133cd7 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,8 @@ package logger import ( "fmt" + "errors" + "strings" ) // LogLevel represents a log level @@ -26,6 +28,21 @@ var logLevelNames = [...]string{ LogLevelPanic: "panic", } +// ErrNoSuchLevel is returned when ParseLogLevel cannot find +// a log level corresponding to the provided string +var ErrNoSuchLevel = errors.New("no such log level") + +// ParseLogLevel parses a string representing a log level +// and returns the proper log level +func ParseLogLevel(s string) (LogLevel, error) { + for lvl, name := range logLevelNames { + if strings.EqualFold(name, s) { + return LogLevel(lvl), nil + } + } + return 254, ErrNoSuchLevel +} + // Logger represents a logger type Logger interface { // NoPanic prevents the logger from panicking on panic events