import logging from typing_extensions import Literal from rich.logging import RichHandler def get_logger(name: str, level: Literal["info", "warning", "debug"]) -> logging.Logger: rich_handler = RichHandler(level=logging.INFO, rich_tracebacks=True, markup=True) logger = logging.getLogger(name) logger.setLevel(logging._nameToLevel[level.upper()]) if not logger.handlers: logger.addHandler(rich_handler) logger.propagate = False return logger