jarvis-core/jarvis_core/log.py

26 lines
632 B
Python

"""JARVIS logging helper."""
import logging
from typing import Optional
FORMAT = "[%(asctime)s] [%(name)s] [%(levelname)8s] %(message)s"
handler = logging.StreamHandler()
LOGGER = None
def get_logger(name: str, fmt: Optional[str] = FORMAT) -> logging.Logger:
"""
Get a pre-configured logger
Args:
name: Name of the logger
"""
global LOGGER
if not (logger := LOGGER):
logger = logging.getLogger(name)
formatter = logging.Formatter(fmt)
handler.setFormatter(formatter)
logger.addHandler(handler)
LOGGER = logger
return logger