Initial upload: API Mock CLI v0.1.0
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / test (3.9) (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / type-check (push) Has been cancelled
CI / build (push) Has been cancelled

This commit is contained in:
2026-01-29 13:53:54 +00:00
parent 9b0e5c97b2
commit feef59a8bd

53
src/utils/logging.py Normal file
View File

@@ -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