The SSH host key has changed on 8 April, 2022 to this one: SHA256:573uTBSeh74kvOo0HJXi5ijdzRm8me27suzNEDlGyrQ
Extra logging functionality for Flask applications
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.9 KiB

Extra functionality for Flask logging
Flask-Logging-Extras is a Flask extension that plugs into the logging
mechanism of Flask applications.
import logging
__version_info__ = ('0', '0', '1')
__version__ = '.'.join(__version_info__)
__author__ = 'Gergely Polonkai'
__license__ = 'BSD'
__copyright__ = '(c) 2015 GT2'
class FlaskExtraLogger(logging.getLoggerClass()):
A logger class that is capable of adding extra keywords to log formatters
def __init__(self, *args, **kwargs):
if 'app' in kwargs and kwargs['app'] is not None:
raise TypeError(
"Cannot initialise {classname} with an app. "
"See the documentation of Flask-Logging-Extras for more info."
super(FlaskExtraLogger, self).__init__(*args, **kwargs)
def _log(self, *args, **kwargs):
if 'extra' not in kwargs:
kwargs['extra'] = {}
for kw in self._valid_keywords:
if kw in kwargs:
kwargs['extra'][kw] = kwargs[kw]
super(FlaskExtraLogger, self)._log(*args, **kwargs)
def init_app(self, app): = app'FLASK_LOGGING_EXTRAS_KEYWORDS', [])
if kw in ['exc_info', 'extra', 'stack_info']:
raise ValueError(
'"{keyword}" member of FLASK_LOGGING_EXTRAS_KEYWORDS is '
'reserved for internal use.')
def register_logger_class(cls=FlaskExtraLogger):
Register a new logger class
It is effectively a wrapper around logging.setLoggerClass().
if not issubclass(cls, logging.Logger):
raise TypeError(
"The logger class must be a subclass of logging.Logger!")