Skip to content
This repository was archived by the owner on Dec 30, 2024. It is now read-only.

Commit 262337b

Browse files
authored
Merge pull request #15 from ezr-ondrej/trace_level_panic
Fixes a panic when Trace level log fired
2 parents a41ff05 + d425460 commit 262337b

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

writer.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,10 @@ func (w *Writer) Write(data []byte) (n int, err error) {
6767
}
6868

6969
event, ok := w.parseLogEvent(data)
70-
event.Level = levelsMapping[lvl]
71-
70+
if !ok {
71+
return
72+
}
73+
event.Level, ok = levelsMapping[lvl]
7274
if !ok {
7375
return
7476
}

writer_test.go

+23
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,29 @@ func TestWrite(t *testing.T) {
7979
require.True(t, beforeSendCalled)
8080
}
8181

82+
func TestWrite_TraceDoesNotPanic(t *testing.T) {
83+
beforeSendCalled := false
84+
writer, err := New("", WithBeforeSend(func(event *sentry.Event, hint *sentry.EventHint) *sentry.Event {
85+
beforeSendCalled = true
86+
return event
87+
}))
88+
require.Nil(t, err)
89+
90+
var zerologError error
91+
zerolog.ErrorHandler = func(err error) {
92+
zerologError = err
93+
}
94+
95+
// use io.MultiWriter to enforce using the Write() method
96+
log := zerolog.New(io.MultiWriter(writer)).With().Timestamp().
97+
Str("requestId", "bee07485-2485-4f64-99e1-d10165884ca7").
98+
Logger()
99+
log.Trace().Msg("test message")
100+
101+
require.Nil(t, zerologError)
102+
require.False(t, beforeSendCalled)
103+
}
104+
82105
func TestWriteLevel(t *testing.T) {
83106
beforeSendCalled := false
84107
writer, err := New("", WithBeforeSend(func(event *sentry.Event, hint *sentry.EventHint) *sentry.Event {

0 commit comments

Comments
 (0)