Source code for consensys_utils.flask.logging

"""
    consensys_utils.flask.logging
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Flask logging resources


    :copyright: Copyright 2017 by ConsenSys France.
    :license: BSD, see :ref:`license` for more details.
"""

import logging

import flask

from ..logging import IDFilter, create_logger as _create_logger


[docs]class RequestIDFilter(IDFilter): """Logging filter that allows to enrich log with Flask request ID"""
[docs] def filter(self, record): """ Enrich log record with request ID""" if flask.has_request_context(): # pragma: no branch record.id = flask.request.id super().filter(record) return True
[docs]def create_logger(app, logger='app'): """Create logger for Flask app :param config: Logging configuration :type config: dict :param logger: Name of the logger :type logger: str """ # In case a config has been provided we use custom logger creation if 'logging' in app.config: _create_logger(app.config['logging']) return logging.getLogger(logger) # Otherwise classic flask logger creation else: return flask.logging.create_logger(app)