def from_exc_info(self, exc_info=None): if exc_info is None: # Retrieve `exc_info` of last exception exc_info = sys.exc_info() # Create exception exception = self.model( type=ErrorHasher.exc_type(exc_info[0]), message=ErrorHasher.exc_message(exc_info[1]), traceback=ErrorHasher.exc_traceback(exc_info[2]), timestamp=datetime.utcnow(), version_base=VERSION_BASE, version_branch=VERSION_BRANCH ) # Calculate exception hash exception.hash = ErrorHasher.hash(exception) # Create/Lookup message for exception exception.error = MessageManager.get.from_exception(exception) # Save exception details exception.save() return exception, exception.error
def from_exc_info(self, exc_info=None): if exc_info is None: # Retrieve `exc_info` of last exception exc_info = sys.exc_info() # Parse exception message_type = Message.Type.Exception try: message_type, exc_info = self._parse_exception(exc_info) except Exception as ex: log.warn('Unable to parse exception: %s', ex, exc_info=True) # Create exception exception = self.model( type=ErrorHasher.exc_type(exc_info[0]), message=ErrorHasher.exc_message(exc_info[1]), traceback=ErrorHasher.exc_traceback(exc_info[2]), timestamp=datetime.utcnow(), version_base=VERSION_BASE, version_branch=VERSION_BRANCH ) # Calculate exception hash exception.hash = ErrorHasher.hash( exception, include_traceback=message_type == Message.Type.Exception ) # Create/Lookup message for exception exception.error = MessageManager.get.from_exception( exception, message_type=message_type ) # Save exception details exception.save() return exception, exception.error
def from_exc_info(self, exc_info=None): if exc_info is None: # Retrieve `exc_info` of last exception exc_info = sys.exc_info() # Create exception exception = self.model(type=ErrorHasher.exc_type(exc_info[0]), message=ErrorHasher.exc_message(exc_info[1]), traceback=ErrorHasher.exc_traceback( exc_info[2]), timestamp=datetime.utcnow(), version_base=VERSION_BASE, version_branch=VERSION_BRANCH) # Calculate exception hash exception.hash = ErrorHasher.hash(exception) # Create/Lookup message for exception exception.error = MessageManager.get.from_exception(exception) # Save exception details exception.save() return exception, exception.error