diff --git a/lib/hawat/app.py b/lib/hawat/app.py index 16f6cf7bb324e73dcf51339387f979f153e881a9..1d1152492afe63ebd34a3199e8a8b9bd3e8981eb 100644 --- a/lib/hawat/app.py +++ b/lib/hawat/app.py @@ -191,7 +191,8 @@ def _setup_app_core(app): def eh_badrequest(err): # pylint: disable=locally-disabled,unused-variable """Flask error handler to be called to service HTTP 400 error.""" flask.current_app.logger.critical( - "Bad Request Error:\n%s", + "BAD REQUEST\n\nRequest: %s\nTraceback:\n%s", + flask.request.full_path, ''.join( traceback.TracebackException( *sys.exc_info() @@ -224,12 +225,13 @@ def _setup_app_core(app): def eh_internal_server_error(err): # pylint: disable=locally-disabled,unused-variable """Flask error handler to be called to service HTTP 500 error.""" flask.current_app.logger.critical( - "Internal Server Error:\n%s", + "INTERNAL SERVER ERROR\n\nRequest: %s\nTraceback:\n%s", + flask.request.full_path, ''.join( traceback.TracebackException( *sys.exc_info() ).format() - ) + ), ) return hawat.errors.error_handler_switch(500, err) diff --git a/lib/hawat/base.py b/lib/hawat/base.py index 5ce49b5fcaa41f90077f316f9d7cfce5bbf46758..87ee99c1fa052ab3f85463bf204809bc2c55357e 100644 --- a/lib/hawat/base.py +++ b/lib/hawat/base.py @@ -302,6 +302,14 @@ class HawatApp(flask.Flask): else: raise HawatAppException("Invalid blueprint module '{}', does not provide the 'get_blueprint' factory method.".format(name)) + def log_exception(self, exc_info): + """ + Reimplementation of :py:func:`flask.Flask.log_exception` method. + """ + self.logger.error( + "Exception on %s [%s]" % (flask.request.path_full, request.method), exc_info=exc_info + ) + def log_exception_with_label(self, tbexc, label = ''): """ Log given exception traceback into application logger.