From feef59a8bd727292da807b0affcdaeaab6e924a9 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Thu, 29 Jan 2026 13:53:54 +0000 Subject: [PATCH] Initial upload: API Mock CLI v0.1.0 --- src/utils/logging.py | 53 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/utils/logging.py diff --git a/src/utils/logging.py b/src/utils/logging.py new file mode 100644 index 0000000..c2684e9 --- /dev/null +++ b/src/utils/logging.py @@ -0,0 +1,53 @@ +import logging +import sys +from pythonjsonlogger import jsonlogger +from typing import Optional + + +class Logger: + _instance: Optional[logging.Logger] = None + + @classmethod + def get_logger(cls, name: str = "api-mock", level: str = "INFO") -> logging.Logger: + if cls._instance is not None: + return cls._instance + logger = logging.getLogger(name) + logger.setLevel(getattr(logging, level.upper(), logging.INFO)) + handler = logging.StreamHandler(sys.stdout) + formatter = jsonlogger.JsonFormatter( + "%(asctime)s %(name)s %(levelname)s %(message)s", + datefmt="%Y-%m-%dT%H:%M:%SZ" + ) + handler.setFormatter(formatter) + logger.addHandler(handler) + cls._instance = logger + return logger + + @staticmethod + def setup_json_logging(level: str = "INFO"): + logger = logging.getLogger() + logger.setLevel(getattr(logging, level.upper(), logging.INFO)) + for handler in logger.handlers[:]: + logger.removeHandler(handler) + handler = logging.StreamHandler(sys.stdout) + formatter = jsonlogger.JsonFormatter( + "%(asctime)s %(levelname)s %(name)s %(message)s", + datefmt="%Y-%m-%dT%H:%M:%SZ" + ) + handler.setFormatter(formatter) + logger.addHandler(handler) + return logger + + @staticmethod + def setup_console_logging(level: str = "INFO"): + logger = logging.getLogger() + logger.setLevel(getattr(logging, level.upper(), logging.INFO)) + for handler in logger.handlers[:]: + logger.removeHandler(handler) + handler = logging.StreamHandler(sys.stdout) + formatter = logging.Formatter( + "%(asctime)s - %(name)s - %(levelname)s - %(message)s" + ) + handler.setFormatter(formatter) + logger.addHandler(handler) + return logger