import logging from logging.handlers import RotatingFileHandler from typing import Literal logger = logging.getLogger("card_creation") logger.setLevel(logging.INFO) handler = RotatingFileHandler( filename="logs/card_creation.log", # encoding='utf-8', maxBytes=32 * 1024 * 1024, # 32 MiB backupCount=5, # Rotate through 5 files ) formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") handler.setFormatter(formatter) logger.addHandler(handler) def log_exception( e: Exception, msg: str = "", level: Literal["debug", "error", "info", "warn"] = "error", ): if level == "debug": logger.debug(msg, stack_info=True) elif level == "error": logger.error(msg, stack_info=True) elif level == "info": logger.info(msg, stack_info=True) else: logger.warning(msg, stack_info=True) raise e(msg)