import logging import sys def configure_logger(name: str = None, level: int = logging.INFO) -> logging.Logger: """ Configure and return a logger with a StreamHandler to stdout. Use this function in any module to get a consistent logger. """ logger = logging.getLogger(name) logger.setLevel(level) # Avoid adding multiple handlers to the same logger if not logger.handlers: handler = logging.StreamHandler(sys.stdout) handler.setLevel(level) formatter = logging.Formatter( '%(asctime)s %(levelname)s %(name)s - %(message)s' ) handler.setFormatter(formatter) logger.addHandler(handler) return logger # Module-level default logger logger = configure_logger()