From 9c8ff1e6e1b1e71806b2892ec42de5b73fb1180e Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Wed, 13 Aug 2025 13:37:52 -0500 Subject: Improve logging by setting up handlers appropriately for each env. --- gn3/loggers.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'gn3/loggers.py') 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)) -- cgit 1.4.1