Home

Handler samber/slog-zerolog

Handlers
Bench Tests
Verify Tests
Summary Links

samber/slog-zerolog is a wrapper around the pre-existing rs/zerolog logging library.

rs/zerolog
samber/slog-zerolog

Benchmark Data

Score: 56.12
Benchmark Runs Ns/Op Allocs/Op Bytes/Op MB/Sec Score
Attributes 240,565 4,881.00 55 4,846 81.13 59.24
Big Group 2,031 598,383.00 8,236 474,114 43.56 12.59
Disabled 322,098,124 3.72 0 0 0.00 96.87
Key Values 242,306 4,823.00 55 4,846 82.11 59.64
Logging 15,120 79,744.00 1,122 80,419 106.54 70.70
Simple 3,171,307 373.30 2 336 206.27 88.15
Simple Source 516,952 2,308.00 34 2,378 117.43 55.86
With Attrs Attributes 141,786 8,007.00 84 8,615 77.18 54.83
With Attrs Key Values 143,222 8,210.00 84 8,616 75.28 54.53
With Attrs Simple 302,643 4,207.00 50 3,741 101.74 61.02
With Group Attributes 112,740 10,964.00 129 12,808 34.84 29.69
With Group Key Values 111,200 10,800.00 129 12,809 35.37 30.33

Benchmark Charts

samber/slog-zerolog Ns/Op samber/slog-zerolog Allocs/Op
samber/slog-zerolog Bytes/Op samber/slog-zerolog GB/Sec

Warnings

Score: 47.69
Required
EmptyAttributes Empty attribute(s) logged ("":null)
Verify: Attribute With Empty

Verify: Attributes Empty

Verify: Attributes With Empty

GroupInline Group with empty key does not inline subfields
Verify: Group Inline

Resolver LogValuer objects are not resolved
Verify: Resolve Group

Verify: Resolve Group With

Verify: Resolve Valuer

Verify: Resolve With

SlogTest Failure of embedded slog/slogtest
Verify: Slog Test

missing key "msg"
this test expects slog.TimeKey, slog.LevelKey and slog.MessageKey

unexpected key ""
a Handler should ignore an empty Attr

unexpected key "time"
a Handler should ignore a zero Record.Time

missing key "c"
a Handler should inline the Attrs of a group with an empty key

missing key "msg"
a Handler should handle the WithGroup method

missing key "msg"
a Handler should handle multiple WithGroup and WithAttr calls

missing key "msg"
a Handler should not output groups if there are no attributes

"k"
got map[string]interface {}{}, want "replaced": a Handler should call Resolve on attribute values

"b"
got map[string]interface {}{}, want "v2": a Handler should call Resolve on attribute values in groups

"k"
got map[string]interface {}{}, want "replaced": a Handler should call Resolve on attribute values from WithAttrs

"b"
got map[string]interface {}{}, want "v2": a Handler should call Resolve on attribute values in groups from WithAttrs

ZeroPC SourceKey logged for zero PC
Verify: Zero PC

ZeroTime Zero time is logged
Verify: Zero Time

0001-01-01T00:00:00Z

Implied
DefaultLevel Handler doesn't default to slog.LevelInfo
Verify: Default Level

defaultlevel is 'DEBUG'

Verify: Default Level

defaultlevel with AddSource is 'DEBUG'

MessageKey Wrong message key (should be 'msg')
Verify: Canceled Context

`message`

Verify: Canceled Context

`message`

Verify: Canceled Context

`message`

Verify: Keys

`message`

Verify: Source Key

`message`

Verify: Zero PC

`message`

Verify: Zero Time

`message`

NoReplAttrBasic HandlerOptions.ReplaceAttr not available for basic fields
Verify: Replace Attr Basic

too many attributes: 4

time field still exists

message field still exists

source == map[file:/home/runner/work/go-slog/go-slog/verify/tests/replace.go function:github.com/madkins23/go-slog/verify/tests.(*SlogTestSuite).TestReplaceAttrBasic line:89]

Verify: Replace Attr Fn Change Key

too few attributes: 3

no message key

message not string

Verify: Replace Attr Fn Level Case

level value not null

Verify: Replace Attr Fn Multi

Verify: Replace Attr Fn Remove Empty Key

Verify: Replace Attr Fn Remove Time

time value not empty string

Suggested
DurationMillis slog.Duration() logs milliseconds instead of nanoseconds
Verify: Log Attributes

GroupDuration
Verify: Group Duration

29002000.000000 != 29002000000000.000000

LevelCase Log level in lowercase
Verify: Canceled Context

'info'

Verify: Canceled Context

'info'

Verify: Canceled Context

'info'

Verify: Key Case

'debug'

Verify: Key Case

'info'

Verify: Key Case

'warn'

Verify: Key Case

'error'

Verify: Keys

'info'

Verify: Source Key

'info'

Verify: Zero PC

'info'

Verify: Zero Time

'info'

TimeMillis slog.Time() logs milliseconds instead of nanoseconds
Verify: Log Attributes

2024-05-19T01:15:07Z