Skip to content

Commit 7135a94

Browse files
committed
fix: send event before adding breadcrumb
1 parent c14dfcc commit 7135a94

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

sentry_sdk/integrations/logging.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import absolute_import
22
from __future__ import print_function
33

4-
import sys
54
import logging
65
import datetime
76

@@ -59,33 +58,34 @@ def _breadcrumb_from_record(self, record):
5958
}
6059

6160
def _emit(self, record):
62-
add_breadcrumb(self._breadcrumb_from_record(record))
63-
64-
if not self._should_create_event(record):
65-
return
66-
6761
if not self.can_record(record):
68-
print(to_string(record.message), file=sys.stderr)
6962
return
7063

71-
event = Event()
72-
73-
# exc_info might be None or (None, None, None)
74-
if record.exc_info and all(record.exc_info):
75-
exc_type, exc_value, tb = record.exc_info
76-
event.set_exception(
77-
exc_type,
78-
exc_value,
79-
skip_internal_frames(tb),
80-
get_current_hub().client.options["with_locals"],
81-
)
64+
if self._should_create_event(record):
65+
with _internal_exceptions():
66+
event = Event()
67+
68+
# exc_info might be None or (None, None, None)
69+
if record.exc_info and all(record.exc_info):
70+
exc_type, exc_value, tb = record.exc_info
71+
event.set_exception(
72+
exc_type,
73+
exc_value,
74+
skip_internal_frames(tb),
75+
get_current_hub().client.options["with_locals"],
76+
)
77+
78+
event["level"] = self._logging_to_event_level(record.levelname)
79+
event["logger"] = record.name
80+
event["logentry"] = {
81+
"message": to_string(record.msg),
82+
"params": record.args,
83+
}
84+
85+
capture_event(event)
8286

83-
event["level"] = self._logging_to_event_level(record.levelname)
84-
event["logger"] = record.name
85-
86-
event["logentry"] = {"message": to_string(record.msg), "params": record.args}
87-
88-
capture_event(event)
87+
with _internal_exceptions():
88+
add_breadcrumb(self._breadcrumb_from_record(record))
8989

9090
def _logging_to_event_level(self, levelname):
9191
return {"critical": "fatal"}.get(levelname.lower(), levelname.lower())

0 commit comments

Comments
 (0)