"""Centralised logging configuration.""" import logging import sys def get_logger(name: str, level: int = logging.INFO) -> logging.Logger: """Return a consistently formatted logger. Args: name: Logger name (typically ``__name__``). level: Logging level (default INFO). Returns: Configured :class:`logging.Logger` instance. """ logger = logging.getLogger(name) if logger.handlers: return logger # already configured — avoid duplicate handlers logger.setLevel(level) handler = logging.StreamHandler(sys.stdout) handler.setLevel(level) formatter = logging.Formatter( fmt="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) handler.setFormatter(formatter) logger.addHandler(handler) logger.propagate = False return logger