diff --git a/sentry_sdk_extensions/__init__.py b/sentry_sdk_extensions/__init__.py index 11773e0..ff95347 100644 --- a/sentry_sdk_extensions/__init__.py +++ b/sentry_sdk_extensions/__init__.py @@ -119,8 +119,14 @@ def capture_or_log_exception(e, logger): if sentry_sdk.is_initialized(): sentry_sdk.capture_exception(e) else: - # this gnarly approach makes it so that each line of the traceback gets the same prefixes (dates etc) - for bunch_of_lines in traceback.format_exception(e): + # this gnarly approach makes it so that the logger prefixes (e.g. snappea task number, dates etc) are shown + # for each of the lines of the traceback (though it has the disadvantage of time not standing still while + # we iterate in the loop). + # + # the 3-argument signature is needed for Python 3.9 (in Python 3.10 and up .format_exception(e) is enough). + # https://docs.python.org/3.10/library/traceback.html#traceback.print_exception + # > If value and tb are provided, the first argument is ignored in order to provide backwards compatibility. + for bunch_of_lines in traceback.format_exception(type(e), e, e.__traceback__): for line in bunch_of_lines.splitlines(): # Note: when .is_initialized() is True, .error is spammy (it gets captured) but we don't have that # problem in this branch.