Skip to content

Commit 4197fb8

Browse files
authored
feat(config): use slog json handler when not tty (#11)
1 parent 0ed7d4d commit 4197fb8

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

internal/config/config.go

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,26 @@ import (
1111

1212
func init() {
1313
w := os.Stderr
14-
logger := slog.New(tint.NewHandler(w, &tint.Options{
15-
Level: slog.LevelDebug,
16-
TimeFormat: time.TimeOnly,
17-
NoColor: !isatty.IsTerminal(w.Fd()),
18-
ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr {
19-
if err, ok := a.Value.Any().(error); ok {
20-
aErr := tint.Err(err)
21-
aErr.Key = a.Key
22-
return aErr
23-
}
24-
return a
25-
},
26-
}))
14+
var handler slog.Handler
15+
if isatty.IsTerminal(w.Fd()) {
16+
handler = tint.NewHandler(w, &tint.Options{
17+
Level: slog.LevelDebug,
18+
TimeFormat: time.TimeOnly,
19+
ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr {
20+
if err, ok := a.Value.Any().(error); ok {
21+
aErr := tint.Err(err)
22+
aErr.Key = a.Key
23+
return aErr
24+
}
25+
return a
26+
},
27+
})
28+
} else {
29+
handler = slog.NewJSONHandler(w, &slog.HandlerOptions{
30+
Level: slog.LevelDebug,
31+
})
32+
}
33+
34+
logger := slog.New(handler)
2735
slog.SetDefault(logger)
2836
}

0 commit comments

Comments
 (0)