from __future__ import annotations import logging from logging.handlers import RotatingFileHandler from pathlib import Path def setup_logging(log_dir: str) -> None: target_dir = Path(log_dir) target_dir.mkdir(parents=True, exist_ok=True) log_file = target_dir / "ota-agent.log" root_logger = logging.getLogger() root_logger.setLevel(logging.INFO) formatter = logging.Formatter( "%(asctime)s [%(levelname)s] %(name)s - %(message)s" ) file_handler = RotatingFileHandler( log_file, maxBytes=2 * 1024 * 1024, backupCount=3, encoding="utf-8", ) file_handler.setFormatter(formatter) stream_handler = logging.StreamHandler() stream_handler.setFormatter(formatter) root_logger.handlers.clear() root_logger.addHandler(file_handler) root_logger.addHandler(stream_handler)