import logging import os def get_logger(name: str) -> logging.Logger: """Return a named logger with a StreamHandler, creating handlers only once. Level defaults to INFO; override with the LOG_LEVEL environment variable. """ logger = logging.getLogger(name) if not logger.handlers: handler = logging.StreamHandler() handler.setFormatter( logging.Formatter( "%(asctime)s | %(levelname)-8s | %(name)s — %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) ) logger.addHandler(handler) logger.setLevel(os.getenv("LOG_LEVEL", "INFO").upper()) return logger