Skip to content

Commit

Permalink
tweak slog handler leveler
Browse files Browse the repository at this point in the history
  • Loading branch information
phuslu committed May 8, 2024
1 parent 0e347c9 commit 7866d2d
Showing 1 changed file with 9 additions and 13 deletions.
22 changes: 9 additions & 13 deletions slog.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,9 @@ func slogJSONAttrEval(e *Entry, a slog.Attr) *Entry {
}

type slogJSONHandler struct {
writer io.Writer
level slog.Leveler
options *slog.HandlerOptions
options slog.HandlerOptions
fallback slog.Handler
writer io.Writer

entry Entry

Expand All @@ -72,10 +71,7 @@ type slogJSONHandler struct {
}

func (h *slogJSONHandler) Enabled(_ context.Context, level slog.Level) bool {
if h.level != nil {
return h.level.Level() <= level
}
return slog.LevelInfo <= level
return h.options.Level.Level() <= level
}

func (h slogJSONHandler) WithAttrs(attrs []slog.Attr) slog.Handler {
Expand Down Expand Up @@ -245,14 +241,14 @@ func (h *slogJSONHandler) handle(_ context.Context, r slog.Record) error {
// SlogNewJSONHandler returns a drop-in replacement of slog.NewJSONHandler.
func SlogNewJSONHandler(writer io.Writer, options *slog.HandlerOptions) slog.Handler {
h := &slogJSONHandler{
writer: writer,
options: options,
fallback: slog.NewJSONHandler(writer, options),
writer: writer,
}
if h.options != nil {
h.level = h.options.Level
} else {
h.options = new(slog.HandlerOptions)
if options != nil {
h.options = *options
}
if h.options.Level == nil {
h.options.Level = slog.LevelInfo
}
return h
}

0 comments on commit 7866d2d

Please sign in to comment.