diff options
Diffstat (limited to 'internal/slog.go')
| -rw-r--r-- | internal/slog.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/internal/slog.go b/internal/slog.go new file mode 100644 index 0000000..115e1d2 --- /dev/null +++ b/internal/slog.go @@ -0,0 +1,24 @@ +package internal + +import ( + "fmt" + "log/slog" + "os" +) + +func InitSlog(level string) { + var programLevel slog.Level + if err := (&programLevel).UnmarshalText([]byte(level)); err != nil { + fmt.Fprintf(os.Stderr, "invalid log level %s: %v, using info\n", level, err) + programLevel = slog.LevelInfo + } + + leveler := &slog.LevelVar{} + leveler.Set(programLevel) + + h := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{ + AddSource: true, + Level: leveler, + }) + slog.SetDefault(slog.New(h)) +} |
