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
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:
53
src/utils/logging.py
Normal file
53
src/utils/logging.py
Normal 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
|
||||||
Reference in New Issue
Block a user