diff options
-rw-r--r-- | gn3/app.py | 4 | ||||
-rw-r--r-- | gn3/loggers.py | 21 |
2 files changed, 25 insertions, 0 deletions
@@ -7,6 +7,7 @@ from typing import Union from flask import Flask from flask_cors import CORS # type: ignore +from gn3.loggers import setup_app_handlers from gn3.api.gemma import gemma from gn3.api.rqtl import rqtl from gn3.api.general import general @@ -42,6 +43,9 @@ def create_app(config: Union[Dict, str, None] = None) -> Flask: elif config.endswith(".py"): app.config.from_pyfile(config) + # DO NOT log anything before this point + setup_app_handlers(app) + CORS( app, origins=app.config["CORS_ORIGINS"], diff --git a/gn3/loggers.py b/gn3/loggers.py new file mode 100644 index 0000000..a74ae7e --- /dev/null +++ b/gn3/loggers.py @@ -0,0 +1,21 @@ +"""Setup loggers""" +import sys +import logging +from logging import StreamHandler + +# ========== Setup formatters ========== +# ========== END: Setup formatters ========== + +def loglevel(app): + """'Compute' the LOGLEVEL from the application.""" + return logging.DEBUG if app.config.get("DEBUG", False) else logging.WARNING + +def setup_app_handlers(app): + """Setup the logging handlers for the application `app`.""" + # ========== Setup handlers ========== + stderr_handler = StreamHandler(stream=sys.stderr) + stderr_handler.setLevel(loglevel(app)) + app.logger.addHandler(stderr_handler) + # ========== END: Setup handlers ========== + root_logger = logging.getLogger() + root_logger.addHandler(stderr_handler) |