Skip to content

Commit 82f24a6

Browse files
feat(yalogger): Implement unmarshallers for level
1 parent fd27426 commit 82f24a6

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

yalogger/errors.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package yalogger
2+
3+
import (
4+
"errors"
5+
)
6+
7+
var ErrInvalidLogLevel = errors.New("invalid log level")

yalogger/utils.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package yalogger
2+
3+
import "strings"
4+
5+
func (l *Level) String() string {
6+
switch *l {
7+
case PanicLevel:
8+
return "Panic"
9+
case FatalLevel:
10+
return "Fatal"
11+
case ErrorLevel:
12+
return "Error"
13+
case WarnLevel:
14+
return "Warn"
15+
case InfoLevel:
16+
return "Info"
17+
case DebugLevel:
18+
return "Debug"
19+
case TraceLevel:
20+
return "Trace"
21+
default:
22+
return "Unknown"
23+
}
24+
}
25+
26+
func (l *Level) Unmarshal(text string) error {
27+
switch strings.ToLower(text) {
28+
case "panic":
29+
*l = PanicLevel
30+
case "fatal":
31+
*l = FatalLevel
32+
case "error":
33+
*l = ErrorLevel
34+
case "warn":
35+
*l = WarnLevel
36+
case "info":
37+
*l = InfoLevel
38+
case "debug":
39+
*l = DebugLevel
40+
case "trace":
41+
*l = TraceLevel
42+
default:
43+
return ErrInvalidLogLevel
44+
}
45+
46+
return nil
47+
}
48+
49+
func (l *Level) UnmarshalText(text []byte) error {
50+
return l.Unmarshal(string(text))
51+
}

0 commit comments

Comments
 (0)