import logging from pathlib import Path def setup_logging(log_file: Path, level: str = "INFO") -> None: log_file.parent.mkdir(parents=True, exist_ok=True) logger = logging.getLogger() logger.setLevel(getattr(logging, level.upper(), logging.INFO)) logger.handlers.clear() formatter = logging.Formatter( "%(asctime)s [%(levelname)s] %(name)s - %(message)s" ) stream_handler = logging.StreamHandler() stream_handler.setFormatter(formatter) file_handler = logging.FileHandler(log_file, encoding="utf-8") file_handler.setFormatter(formatter) logger.addHandler(stream_handler) logger.addHandler(file_handler)