Skip to content

Commit 9409efa

Browse files
committed
improve log level test to log level
Signed-off-by: Markus Blaschke <mblaschke82@gmail.com>
1 parent 32ca53d commit 9409efa

File tree

2 files changed

+46
-19
lines changed

2 files changed

+46
-19
lines changed

log/slogger/level.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package slogger
2+
3+
import (
4+
"errors"
5+
"log/slog"
6+
"strings"
7+
)
8+
9+
func NewLevelVar(val *string) (*slog.LevelVar, error) {
10+
levelVar := new(slog.LevelVar)
11+
12+
if val != nil {
13+
level, err := TranslateToLogLevel(*val)
14+
if err != nil {
15+
return nil, err
16+
}
17+
18+
levelVar.Set(level)
19+
}
20+
21+
return levelVar, nil
22+
}
23+
24+
func TranslateToLogLevel(val string) (slog.Level, error) {
25+
switch strings.ToLower(val) {
26+
case "t", "trc", "trace":
27+
return LevelTrace, nil
28+
case "d", "dbg", "debug":
29+
return LevelDebug, nil
30+
case "i", "inf", "info":
31+
return LevelInfo, nil
32+
case "w", "warn", "warning":
33+
return LevelWarn, nil
34+
case "e", "err", "error":
35+
return LevelError, nil
36+
case "c", "crit", "critical", "fat", "fatal":
37+
return LevelFatal, nil
38+
case "p", "panic":
39+
return LevelPanic, nil
40+
}
41+
42+
return LevelError, errors.New("invalid log level: " + val)
43+
}

log/slogger/logger.go

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,16 @@ import (
44
"fmt"
55
"io"
66
"log/slog"
7-
"strings"
87

98
"github.com/lmittmann/tint"
109
)
1110

1211
type LoggerOptionFunc func(*Options)
1312

1413
func WithLevelText(val string) LoggerOptionFunc {
15-
var level slog.Level
16-
17-
strings.Contains(val, "%")
18-
switch strings.ToLower(val) {
19-
case "trace":
20-
level = LevelTrace
21-
case "debug":
22-
level = LevelDebug
23-
case "info":
24-
level = LevelInfo
25-
case "warn":
26-
level = LevelWarn
27-
case "error":
28-
level = LevelError
29-
case "fatal":
30-
level = LevelFatal
31-
case "panic":
32-
level = LevelPanic
14+
level, err := TranslateToLogLevel(val)
15+
if err != nil {
16+
panic(err)
3317
}
3418

3519
return func(opt *Options) {

0 commit comments

Comments
 (0)