Skip to content
Closed
5 changes: 5 additions & 0 deletions bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ var handlers = []struct {
}{
{"dummy", &DummyHandler{}},
{"console", NewHandler(io.Discard, &HandlerOptions{Level: slog.LevelDebug, AddSource: false})},
// {"console-headers", NewHandler(io.Discard, &HandlerOptions{Headers: []string{"foo"}, Level: slog.LevelDebug, AddSource: false})},
// {"console-replaceattr", NewHandler(io.Discard, &HandlerOptions{Level: slog.LevelDebug, AddSource: false, ReplaceAttr: func(_ []string, a slog.Attr) slog.Attr { return a }})},
// {"console-headers-replaceattr", NewHandler(io.Discard, &HandlerOptions{Headers: []string{"foo"}, Level: slog.LevelDebug, AddSource: false, ReplaceAttr: func(_ []string, a slog.Attr) slog.Attr { return a }})},
{"std-text", slog.NewTextHandler(io.Discard, &slog.HandlerOptions{Level: slog.LevelDebug, AddSource: false})},
// {"std-text-replaceattr", slog.NewTextHandler(io.Discard, &slog.HandlerOptions{Level: slog.LevelDebug, AddSource: false, ReplaceAttr: func(_ []string, a slog.Attr) slog.Attr { return a }})},
{"std-json", slog.NewJSONHandler(io.Discard, &slog.HandlerOptions{Level: slog.LevelDebug, AddSource: false})},
}

Expand All @@ -36,6 +40,7 @@ var attrs = []slog.Attr{
slog.Any("err", errors.New("yo")),
slog.Group("empty"),
slog.Group("group", slog.String("bar", "baz")),
slog.String("multi", "foo\nbar"),
}

var attrsAny = func() (a []any) {
Expand Down
11 changes: 11 additions & 0 deletions buffer.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,18 @@ func (b *buffer) WriteTo(dst io.Writer) (int64, error) {
return int64(n), nil
}

func (b *buffer) Write(bt []byte) (int, error) {
*b = append(*b, bt...)
return len(bt), nil
}

func (b *buffer) Reset() {
// To reduce peak allocation, return only smaller buffers to the pool.
const maxBufferSize = 16 << 10
if cap(*b) > maxBufferSize {
*b = (*b)[:0:maxBufferSize]
return
}
*b = (*b)[:0]
}

Expand Down
Loading