diff options
| author | Frederick Muriuki Muriithi | 2025-08-13 13:37:52 -0500 |
|---|---|---|
| committer | Frederick Muriuki Muriithi | 2025-08-13 13:37:52 -0500 |
| commit | 9c8ff1e6e1b1e71806b2892ec42de5b73fb1180e (patch) | |
| tree | e423e2dfd4e72d718fcfb4c6c3d07c22d3986d6b | |
| parent | 1c4fc8e0ef9f38e8a34b13aa7045bbdc9901b83a (diff) | |
| download | genenetwork3-9c8ff1e6e1b1e71806b2892ec42de5b73fb1180e.tar.gz | |
Improve logging by setting up handlers appropriately for each env.
| -rw-r--r-- | gn3/app.py | 4 | ||||
| -rw-r--r-- | gn3/loggers.py | 24 |
2 files changed, 22 insertions, 6 deletions
diff --git a/gn3/app.py b/gn3/app.py index 6f09eb5..864ae99 100644 --- a/gn3/app.py +++ b/gn3/app.py @@ -11,7 +11,7 @@ from typing import Union from flask import Flask from flask_cors import CORS # type: ignore -from gn3.loggers import loglevel, setup_app_handlers, setup_modules_logging +from gn3.loggers import loglevel, setup_app_logging, setup_modules_logging from gn3.api.gemma import gemma from gn3.api.rqtl import rqtl from gn3.api.general import general @@ -82,7 +82,7 @@ def create_app(config: Union[Dict, str, None] = None) -> Flask: app.config.from_envvar("GN3_SECRETS") # END: SECRETS verify_app_config(app) - setup_app_handlers(app) + setup_app_logging(app) setup_modules_logging(loglevel(app), ("gn_libs.mysqldb",)) # DO NOT log anything before this point logging.info("Guix Profile: '%s'.", os.environ.get("GUIX_PROFILE")) diff --git a/gn3/loggers.py b/gn3/loggers.py index 311ea58..df213fa 100644 --- a/gn3/loggers.py +++ b/gn3/loggers.py @@ -1,4 +1,5 @@ """Setup loggers""" +import os import sys import logging from logging import StreamHandler @@ -17,12 +18,27 @@ def setup_modules_logging(level, modules): _logger.setLevel(level) -def setup_app_handlers(app): - """Setup the logging handlers for the application `app`.""" - # ========== Setup handlers ========== +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)) |
