diff options
author | Frederick Muriuki Muriithi | 2024-09-12 08:48:38 -0500 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-09-12 08:54:01 -0500 |
commit | a23eb674191572867d1161b2b43285e060781062 (patch) | |
tree | d2812e1ea4360014617fab9f926796e058a148f8 | |
parent | b75a3a463964fde6d68f0389f474fcf0aff4fe3b (diff) | |
download | genenetwork3-a23eb674191572867d1161b2b43285e060781062.tar.gz |
Gracefully print out debug messages even outside app context
The flask.current_app object depends on the application context
existing. In the case that no such context existing, then we still log
out information, gracefully with this commit.
-rw-r--r-- | gn3/commands.py | 4 | ||||
-rw-r--r-- | gn3/debug.py | 12 |
2 files changed, 12 insertions, 4 deletions
diff --git a/gn3/commands.py b/gn3/commands.py index 7a9ba67..d5215f8 100644 --- a/gn3/commands.py +++ b/gn3/commands.py @@ -3,6 +3,7 @@ commands""" import sys import json import pickle +import logging import tempfile import subprocess @@ -161,7 +162,8 @@ def run_cmd(cmd: str, success_codes: Tuple = (0,), env: Optional[str] = None) -> out = str(results.stdout, 'utf-8') if results.returncode not in success_codes: # Error! out = str(results.stderr, 'utf-8') - current_app.logger.debug(out) + (# We do not always run this within an app context + current_app.logger.debug if current_app else logging.debug)(out) return {"code": results.returncode, "output": out} def run_async_cmd( diff --git a/gn3/debug.py b/gn3/debug.py index acc2402..3c88bd3 100644 --- a/gn3/debug.py +++ b/gn3/debug.py @@ -2,11 +2,17 @@ import logging from flask import current_app -logger = logging.getLogger(__name__) +__this_module_name__ == __name__ + +def getLogger(): + return ( + logging.getLogger(__name__) + if not bool(current_app) + else current_app.logger) def __pk__(*args): value = args[-1] title_vals = " => ".join(args[0:-1]) - current_app.logger.setLevel(logging.DEBUG) # Force debug level since we assume we are using it! - current_app.logger.debug("%s: %s", title_vals, value) + logger = getLogger() + logger.debug("%s: %s", title_vals, value) return value |