Check if Flask request context is available
flask, logging, python, werkzeug
Solution
Use `has_request_context` or `has_app_context`.
if has_request_context():
# request is active
Alternatively, `current_app`, `g`, `request`, and `session` are all instances of `LocalProxy`. If a proxy is not bound, it will be `False` when treated as a boolean.
if request:
# request is active
Problem
I want to log some data from context variables (`request`, `session`) when logging during a Flask request, but use default behavior if not. I'm using a `try ... except` block in `logging.formatter`. Is there a better way to check for a request context? ``` try: record.user = session['user_name'] record.very_important_data = request.super_secret except Exception: record.user = None ```