aboutsummaryrefslogtreecommitdiff
path: root/gn3
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-04-21 05:22:05 +0300
committerFrederick Muriuki Muriithi2023-04-21 05:22:05 +0300
commit95f067a542424b76022595a74d660a7e84158f38 (patch)
tree17cf13f89eb58e2758e79c905b5777181d1334e1 /gn3
parent1fb5633042aa730d9467ad086196df99e60de151 (diff)
downloadgenenetwork3-95f067a542424b76022595a74d660a7e84158f38.tar.gz
Setup module for logging
During development, we need logging sometimes to help with troubleshooting problems. This commit provides a module to help set up the logging in a separate module from the app module.
Diffstat (limited to 'gn3')
-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)