aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gn3/app.py4
-rw-r--r--gn3/loggers.py21
2 files changed, 25 insertions, 0 deletions
diff --git a/gn3/app.py b/gn3/app.py
index 0c2f9f9..b4b4b43 100644
--- a/gn3/app.py
+++ b/gn3/app.py
@@ -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)