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 | |