From 7d4031efc3ef3dd3d699d67ff28cae0b778fa77e Mon Sep 17 00:00:00 2001 From: LBolte29 <97528701+LBolte29@users.noreply.github.com> Date: Tue, 8 Mar 2022 16:33:46 +0100 Subject: [PATCH] Adjust logger (#1442) add appName in logger and make user_id, session_id kwargs --- gamestonk_terminal/loggers.py | 25 +++++++++++++++++-------- terminal.py | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/gamestonk_terminal/loggers.py b/gamestonk_terminal/loggers.py index 82d84f5ea87..ae8951e749c 100644 --- a/gamestonk_terminal/loggers.py +++ b/gamestonk_terminal/loggers.py @@ -14,7 +14,7 @@ import gamestonk_terminal.config_terminal as cfg logger = logging.getLogger(__name__) LOGFORMAT = "%(asctime)s|%(name)s|%(funcName)s|%(lineno)s|%(message)s" -LOGPREFIXFORMAT = "%(levelname)s|%(version)s|%(loggingId)s|%(sessionId)s|" +LOGPREFIXFORMAT = "%(levelname)s|%(appName)s|%(version)s|%(loggingId)s|%(sessionId)s|" DATEFORMAT = "%Y-%m-%dT%H:%M:%S%z" @@ -31,7 +31,7 @@ def library_loggers(verbosity: int = 0) -> None: logging.getLogger("urllib3").setLevel(verbosity) -def setup_file_logger(session_id: str) -> None: +def setup_file_logger(app_name: str, session_id: str) -> None: """Setup File Logger""" file_path = Path(__file__) logger.debug("Parent dir: %s", file_path.parent.parent.absolute()) @@ -73,7 +73,7 @@ def setup_file_logger(session_id: str) -> None: handler = logging.FileHandler(cfg.LOGGING_FILE) formatter = CustomFormatterWithExceptions( - cfg.LOGGING_ID, session_id, fmt=LOGFORMAT, datefmt=DATEFORMAT + app_name, cfg.LOGGING_ID, session_id, fmt=LOGFORMAT, datefmt=DATEFORMAT ) handler.setFormatter(formatter) logging.getLogger().addHandler(handler) @@ -84,6 +84,7 @@ class CustomFormatterWithExceptions(logging.Formatter): def __init__( self, + app_name: str, logging_id: str, session_id: str, fmt=None, @@ -96,6 +97,7 @@ class CustomFormatterWithExceptions(logging.Formatter): "loggingId": logging_id, "sessionId": session_id, "version": cfg.LOGGING_VERSION, + "appName": app_name, } def formatException(self, ei) -> str: @@ -130,6 +132,13 @@ class CustomFormatterWithExceptions(logging.Formatter): if hasattr(record, "func_name_override"): record.funcName = record.func_name_override # type: ignore record.lineno = 0 + + if hasattr(record, "user_id"): + self.logPrefixDict["loggingId"] = record.user_id # type: ignore + + if hasattr(record, "session_id"): + self.logPrefixDict["sessionId"] = record.session_id # type: ignore + s = super().format(record) if record.levelname: self.logPrefixDict["levelname"] = record.levelname[0] @@ -165,7 +174,7 @@ def get_commit_hash() -> None: cfg.LOGGING_VERSION = f"sha:{short_sha}" -def setup_logging() -> None: +def setup_logging(app_name: str) -> None: """Setup Logging""" START_TIME = int(time.time()) @@ -183,26 +192,26 @@ def setup_logging() -> None: if a_handler == "stdout": handler = logging.StreamHandler(sys.stdout) formatter = CustomFormatterWithExceptions( - LOGGING_ID, str(START_TIME), fmt=LOGFORMAT, datefmt=DATEFORMAT + app_name, LOGGING_ID, str(START_TIME), fmt=LOGFORMAT, datefmt=DATEFORMAT ) handler.setFormatter(formatter) logging.getLogger().addHandler(handler) elif a_handler == "stderr": handler = logging.StreamHandler(sys.stderr) formatter = CustomFormatterWithExceptions( - LOGGING_ID, str(START_TIME), fmt=LOGFORMAT, datefmt=DATEFORMAT + app_name, LOGGING_ID, str(START_TIME), fmt=LOGFORMAT, datefmt=DATEFORMAT ) handler.setFormatter(formatter) logging.getLogger().addHandler(handler) elif a_handler == "noop": handler = logging.NullHandler() # type: ignore formatter = CustomFormatterWithExceptions( - LOGGING_ID, str(START_TIME), fmt=LOGFORMAT, datefmt=DATEFORMAT + app_name, LOGGING_ID, str(START_TIME), fmt=LOGFORMAT, datefmt=DATEFORMAT ) handler.setFormatter(formatter) logging.getLogger().addHandler(handler) elif a_handler == "file": - setup_file_logger(str(START_TIME)) + setup_file_logger(app_name, str(START_TIME)) else: logger.debug("Unknown loghandler") diff --git a/terminal.py b/terminal.py index 1d6f42cb2c2..17b5cee2e95 100644 --- a/terminal.py +++ b/terminal.py @@ -224,7 +224,7 @@ class TerminalController(BaseController): def terminal(jobs_cmds: List[str] = None): """Terminal Menu""" - setup_logging() + setup_logging("gst") logger.info("START") logger.info("Python: %s", platform.python_version()) logger.info("OS: %s", platform.system())