Skip to content

Commit

Permalink
12496 - Add in exception handling logging. (#286)
Browse files Browse the repository at this point in the history
* Add in exception logging. This way it will display in the logs, and not just be sent over sentry.

* Remove HttpException, as Exception covers this.

* Minor tweak.

* Fix for MultipleResultsFound.

* Minor typo fix.

* More tweaks.

* Minor tweak.
  • Loading branch information
seeker25 authored Jun 6, 2022
1 parent d7121fc commit 7b8f04c
Showing 1 changed file with 8 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,24 +37,28 @@ def auth_handler(self, error): # pylint: disable=no-self-use
def db_handler(self, error): # pylint: disable=no-self-use
"""Handle Database error."""
logger.exception(error)
return {'error': '{}'.format(error.__dict__['code']),
'message': '{}'.format(str(error.__dict__['orig']))}, error.status_code, RESPONSE_HEADERS
error_text = error.__dict__['code'] if hasattr(error.__dict__, 'code') else ''
message_text = str(error.__dict__['orig']) if hasattr(error.__dict__, 'orig') else 'Internal server error'
status_code = error.status_code if hasattr(error, 'status_code') else 500
return {'error': '{}'.format(error_text),
'message': '{}'.format(message_text)}, status_code, RESPONSE_HEADERS

def std_handler(self, error): # pylint: disable=no-self-use
"""Handle standard exception."""
message = dict(messaage=error.message if hasattr(error, 'message') else error.description)
if isinstance(error, HTTPException):
logger.error(error)
message = dict(message=error.message if hasattr(error, 'message') else error.description)
else:
logger.exception(error)
message = dict(message='Internal server error')
return message, error.code if isinstance(error, HTTPException) else 500, RESPONSE_HEADERS

def init_app(self, app):
"""Register common exceptons or errors."""
self.app = app
self.register(AuthError, self.auth_handler)
self.register(HTTPException)
self.register(SQLAlchemyError, self.db_handler)
self.register(Exception)
for exception in default_exceptions:
self.register(self._get_exc_class_and_code(exception))

Expand Down

0 comments on commit 7b8f04c

Please sign in to comment.