@@ -194,9 +194,10 @@ def format(self, record: logging.LogRecord) -> str: # noqa: A003
194
194
195
195
# exception and exception_name fields can be added as extra key
196
196
# in any log level, we try to extract and use them first
197
- extracted_exception , extracted_exception_name = self ._extract_log_exception (log_record = record )
197
+ extracted_exception , extracted_exception_name , exception_notes = self ._extract_log_exception (log_record = record )
198
198
formatted_log ["exception" ] = formatted_log .get ("exception" , extracted_exception )
199
199
formatted_log ["exception_name" ] = formatted_log .get ("exception_name" , extracted_exception_name )
200
+ formatted_log ["exception_notes" ] = formatted_log .get ("exception_notes" , exception_notes )
200
201
if self .serialize_stacktrace :
201
202
# Generate the traceback from the traceback library
202
203
formatted_log ["stack_trace" ] = self ._serialize_stacktrace (log_record = record )
@@ -380,7 +381,7 @@ def _serialize_stacktrace(self, log_record: logging.LogRecord) -> LogStackTrace
380
381
381
382
return None
382
383
383
- def _extract_log_exception (self , log_record : logging .LogRecord ) -> tuple [str , str ] | tuple [None , None ]:
384
+ def _extract_log_exception (self , log_record : logging .LogRecord ) -> tuple [str , str , list ] | tuple [None , None , None ]:
384
385
"""Format traceback information, if available
385
386
386
387
Parameters
@@ -393,10 +394,12 @@ def _extract_log_exception(self, log_record: logging.LogRecord) -> tuple[str, st
393
394
log_record: tuple[str, str] | tuple[None, None]
394
395
Log record with constant traceback info and exception name
395
396
"""
397
+
396
398
if isinstance (log_record .exc_info , tuple ) and hasattr (log_record .exc_info [0 ], "__name__" ):
397
- return self .formatException (log_record .exc_info ), log_record .exc_info [0 ].__name__ # type: ignore
399
+ exception_notes = getattr (log_record .exc_info [1 ], "__notes__" , None )
400
+ return self .formatException (log_record .exc_info ), log_record .exc_info [0 ].__name__ , exception_notes # type: ignore
398
401
399
- return None , None
402
+ return None , None , None
400
403
401
404
def _extract_log_keys (self , log_record : logging .LogRecord ) -> dict [str , Any ]:
402
405
"""Extract and parse custom and reserved log keys
0 commit comments