Skip to content

Commit c1533bd

Browse files
authored
patched; panic Event.Object() and Event.EmbedObject() with nil (#338)
1 parent 0872592 commit c1533bd

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

event.go

+9
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,12 @@ func (e *Event) Object(key string, obj LogObjectMarshaler) *Event {
207207
return e
208208
}
209209
e.buf = enc.AppendKey(e.buf, key)
210+
if obj == nil {
211+
e.buf = enc.AppendNil(e.buf)
212+
213+
return e
214+
}
215+
210216
e.appendObject(obj)
211217
return e
212218
}
@@ -224,6 +230,9 @@ func (e *Event) EmbedObject(obj LogObjectMarshaler) *Event {
224230
if e == nil {
225231
return e
226232
}
233+
if obj == nil {
234+
return e
235+
}
227236
obj.MarshalZerologObject(e)
228237
return e
229238
}

event_test.go

+26
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,29 @@ func TestEvent_AnErr(t *testing.T) {
3737
})
3838
}
3939
}
40+
41+
func TestEvent_ObjectWithNil(t *testing.T) {
42+
var buf bytes.Buffer
43+
e := newEvent(levelWriterAdapter{&buf}, DebugLevel)
44+
_ = e.Object("obj", nil)
45+
_ = e.write()
46+
47+
want := `{"obj":null}`
48+
got := strings.TrimSpace(buf.String())
49+
if got != want {
50+
t.Errorf("Event.Object() = %q, want %q", got, want)
51+
}
52+
}
53+
54+
func TestEvent_EmbedObjectWithNil(t *testing.T) {
55+
var buf bytes.Buffer
56+
e := newEvent(levelWriterAdapter{&buf}, DebugLevel)
57+
_ = e.EmbedObject(nil)
58+
_ = e.write()
59+
60+
want := "{}"
61+
got := strings.TrimSpace(buf.String())
62+
if got != want {
63+
t.Errorf("Event.EmbedObject() = %q, want %q", got, want)
64+
}
65+
}

0 commit comments

Comments
 (0)