"""Structured logging helper. Usage: from src.utils.logging import get_logger logger = get_logger(__name__) logger.info("message") """ import logging import sys _CONFIGURED = False def _configure_root() -> None: global _CONFIGURED if _CONFIGURED: return handler = logging.StreamHandler(sys.stdout) formatter = logging.Formatter( fmt="%(asctime)s | %(levelname)-7s | %(name)s | %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) handler.setFormatter(formatter) root = logging.getLogger() root.setLevel(logging.INFO) root.addHandler(handler) _CONFIGURED = True def get_logger(name: str) -> logging.Logger: _configure_root() return logging.getLogger(name)