about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-03-19 15:54:24 +0300
committerFrederick Muriuki Muriithi2024-03-19 15:54:24 +0300
commit77fc426d35cf88af768dfac281e6a4979ed451fc (patch)
treea3f2d90564e14f9832042d8aac7067f22f62507d
parentf22c423375487149f4f485d83c4a083f3ca0dbfd (diff)
downloadgn-uploader-77fc426d35cf88af768dfac281e6a4979ed451fc.tar.gz
Set up application logging.
-rw-r--r--qc_app/__init__.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/qc_app/__init__.py b/qc_app/__init__.py
index 43831d8..c9756a1 100644
--- a/qc_app/__init__.py
+++ b/qc_app/__init__.py
@@ -1,7 +1,9 @@
 """The Quality-Control Web Application entry point"""
-
 import os
+import sys
+import logging
 from pathlib import Path
+from logging import StreamHandler
 
 from flask import Flask
 
@@ -18,6 +20,15 @@ def override_settings_with_envvars(
     for setting in (key for key in app.config if key not in ignore):
         app.config[setting] = os.environ.get(setting) or app.config[setting]
 
+def setup_logging(app: Flask):
+    """Setup application logging"""
+    handler_stderr = StreamHandler(stream=sys.stderr)
+    app.logger.addHandler(handler_stderr)
+
+    rootlogger = logging.getLogger()
+    rootlogger.addHandler(handler_stderr)
+    rootlogger.setLevel(app.config["LOG_LEVEL"])
+
 def create_app():
     """The application factory"""
     app = Flask(__name__)
@@ -27,6 +38,7 @@ def create_app():
         app.config.from_envvar("QCAPP_CONF") # Override defaults with instance path
 
     override_settings_with_envvars(app, ignore=tuple())
+    setup_logging(app)
 
     if "QCAPP_SECRETS" in os.environ:
         app.config.from_envvar("QCAPP_SECRETS")