Merge pull request #3883 from tonydelanuez/clarify-got-request-exception

Doc update: Clarify got_request_exception signal docs
This commit is contained in:
David Lord 2021-02-01 20:31:57 -08:00 committed by GitHub
commit 15f0fc2d24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 8 deletions

View File

@ -440,18 +440,32 @@ The following signals exist in Flask:
.. data:: got_request_exception .. data:: got_request_exception
This signal is sent when an exception happens during request processing. This signal is sent when an unhandled exception happens during
It is sent *before* the standard exception handling kicks in and even request processing, including when debugging. The exception is
in debug mode, where no exception handling happens. The exception passed to the subscriber as ``exception``.
itself is passed to the subscriber as `exception`.
Example subscriber:: This signal is not sent for
:exc:`~werkzeug.exceptions.HTTPException`, or other exceptions that
have error handlers registered, unless the exception was raised from
an error handler.
def log_exception(sender, exception, **extra): This example shows how to do some extra logging if a theoretical
sender.logger.debug('Got exception during processing: %s', exception) ``SecurityException`` was raised:
.. code-block:: python
from flask import got_request_exception from flask import got_request_exception
got_request_exception.connect(log_exception, app)
def log_security_exception(sender, exception, **extra):
if not isinstance(exception, SecurityException):
return
security_logger.exception(
f"SecurityException at {request.url!r}",
exc_info=exception,
)
got_request_exception.connect(log_security_exception, app)
.. data:: request_tearing_down .. data:: request_tearing_down