@@ -194,9 +194,10 @@ def format(self, record: logging.LogRecord) -> str: # noqa: A003
194194
195195 # exception and exception_name fields can be added as extra key
196196 # 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 )
198198 formatted_log ["exception" ] = formatted_log .get ("exception" , extracted_exception )
199199 formatted_log ["exception_name" ] = formatted_log .get ("exception_name" , extracted_exception_name )
200+ formatted_log ["exception_notes" ] = formatted_log .get ("exception_notes" , exception_notes )
200201 if self .serialize_stacktrace :
201202 # Generate the traceback from the traceback library
202203 formatted_log ["stack_trace" ] = self ._serialize_stacktrace (log_record = record )
@@ -380,7 +381,7 @@ def _serialize_stacktrace(self, log_record: logging.LogRecord) -> LogStackTrace
380381
381382 return None
382383
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 ]:
384385 """Format traceback information, if available
385386
386387 Parameters
@@ -393,10 +394,12 @@ def _extract_log_exception(self, log_record: logging.LogRecord) -> tuple[str, st
393394 log_record: tuple[str, str] | tuple[None, None]
394395 Log record with constant traceback info and exception name
395396 """
397+
396398 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
398401
399- return None , None
402+ return None , None , None
400403
401404 def _extract_log_keys (self , log_record : logging .LogRecord ) -> dict [str , Any ]:
402405 """Extract and parse custom and reserved log keys
0 commit comments