about summary refs log tree commit diff
path: root/gn3/loggers.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/loggers.py')
-rw-r--r--gn3/loggers.py37
1 files changed, 33 insertions, 4 deletions
diff --git a/gn3/loggers.py b/gn3/loggers.py
index 5e52a9f..2cb0ca0 100644
--- a/gn3/loggers.py
+++ b/gn3/loggers.py
@@ -1,8 +1,14 @@
 """Setup loggers"""
+import os
 import sys
 import logging
 from logging import StreamHandler
 
+logging.basicConfig(
+    format=("%(asctime)s — %(filename)s:%(lineno)s — %(levelname)s "
+            "(%(thread)d:%(threadName)s): %(message)s")
+)
+
 # ========== Setup formatters ==========
 # ========== END: Setup formatters ==========
 
@@ -10,12 +16,35 @@ 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 ==========
+
+def setup_modules_logging(level, modules):
+    """Configure logging levels for a list of modules."""
+    for module in modules:
+        _logger = logging.getLogger(module)
+        _logger.setLevel(level)
+
+
+def __add_default_handlers__(app):
+    """Add some default handlers, if running in dev environment."""
     stderr_handler = StreamHandler(stream=sys.stderr)
     app.logger.addHandler(stderr_handler)
-    # ========== END: Setup handlers ==========
     root_logger = logging.getLogger()
     root_logger.addHandler(stderr_handler)
     root_logger.setLevel(loglevel(app))
+
+
+def __add_gunicorn_handlers__(app):
+    """Set up logging for the WSGI environment with GUnicorn"""
+    logger = logging.getLogger("gunicorn.error")
+    app.logger.handlers = logger.handlers
+    app.logger.setLevel(logger.level)
+    return app
+
+
+def setup_app_logging(app):
+    """Setup the logging handlers for the application `app`."""
+    software, *_version_and_comments = os.environ.get(
+        "SERVER_SOFTWARE", "").split('/')
+    return (__add_gunicorn_handlers__(app)
+            if bool(software)
+            else __add_default_handlers__(app))