From c67c464f4f0fb8f64b178abcaef796ab7699783c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emir=20Ribi=C4=87?= Date: Sat, 25 Jan 2025 13:00:14 +0100 Subject: [PATCH 1/2] handle sentry.Request properly in sentrylogrus --- logrus/logrusentry.go | 12 ++++++++++++ logrus/logrusentry_test.go | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/logrus/logrusentry.go b/logrus/logrusentry.go index e6739950b..9a804f386 100644 --- a/logrus/logrusentry.go +++ b/logrus/logrusentry.go @@ -172,6 +172,18 @@ func (h *Hook) entryToEvent(l *logrus.Entry) *sentry.Event { } key := h.key(FieldRequest) + switch request := s.Extra[key].(type) { + case *http.Request: + delete(s.Extra, key) + s.Request = sentry.NewRequest(request) + case sentry.Request: + delete(s.Extra, key) + s.Request = &request + case *sentry.Request: + delete(s.Extra, key) + s.Request = request + } + if req, ok := s.Extra[key].(*http.Request); ok { delete(s.Extra, key) s.Request = sentry.NewRequest(req) diff --git a/logrus/logrusentry_test.go b/logrus/logrusentry_test.go index d44af1bc2..472950e1d 100644 --- a/logrus/logrusentry_test.go +++ b/logrus/logrusentry_test.go @@ -166,6 +166,44 @@ func Test_entryToEvent(t *testing.T) { Logger: "logrus", }, }, + "sentry request": { + entry: &logrus.Entry{ + Data: map[string]any{ + FieldRequest: sentry.Request{ + URL: "http://example.com/", + Method: http.MethodGet, + }, + }, + }, + want: &sentry.Event{ + Level: "fatal", + Extra: map[string]any{}, + Request: &sentry.Request{ + URL: "http://example.com/", + Method: http.MethodGet, + }, + Logger: "logrus", + }, + }, + "sentry pointer to request": { + entry: &logrus.Entry{ + Data: map[string]any{ + FieldRequest: &sentry.Request{ + URL: "http://example.com/", + Method: http.MethodGet, + }, + }, + }, + want: &sentry.Event{ + Level: "fatal", + Extra: map[string]any{}, + Request: &sentry.Request{ + URL: "http://example.com/", + Method: http.MethodGet, + }, + Logger: "logrus", + }, + }, "error": { entry: &logrus.Entry{ Data: map[string]any{ From 69fabfd881ee5bf888687f558ef53a4f32b25982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emir=20Ribi=C4=87?= Date: Sat, 25 Jan 2025 13:00:34 +0100 Subject: [PATCH 2/2] remove old code --- logrus/logrusentry.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/logrus/logrusentry.go b/logrus/logrusentry.go index 9a804f386..1ac9da443 100644 --- a/logrus/logrusentry.go +++ b/logrus/logrusentry.go @@ -184,11 +184,6 @@ func (h *Hook) entryToEvent(l *logrus.Entry) *sentry.Event { s.Request = request } - if req, ok := s.Extra[key].(*http.Request); ok { - delete(s.Extra, key) - s.Request = sentry.NewRequest(req) - } - if err, ok := s.Extra[logrus.ErrorKey].(error); ok { delete(s.Extra, logrus.ErrorKey) s.SetException(err, -1)