diff --git a/graphite_api/config.py b/graphite_api/config.py index a10e0c8..334aa32 100644 --- a/graphite_api/config.py +++ b/graphite_api/config.py @@ -13,6 +13,7 @@ from .search import IndexSearcher from .storage import Store from . import DEBUG +from flask.signals import got_request_exception try: from logging.config import dictConfig @@ -82,6 +83,10 @@ def load_by_path(path): return getattr(finder, klass) +def log_exception(sender, exception, **extra): + logger.error('Exception', exception=exception) + + def configure(app): config_file = os.environ.get('GRAPHITE_API_CONFIG', '/etc/graphite-api.yaml') @@ -96,6 +101,8 @@ def configure(app): configure_logging(config) + got_request_exception.connect(log_exception, app) + for key, value in list(default_conf.items()): config.setdefault(key, value) diff --git a/setup.py b/setup.py index 1c3e101..00cccc7 100644 --- a/setup.py +++ b/setup.py @@ -12,6 +12,7 @@ 'six', 'structlog', 'tzlocal', + 'blinker', ] if sys.version_info < (2, 7):