from __future__ import annotations import logging from logging.handlers import RotatingFileHandler from pathlib import Path def setup_logging(log_file: Path) -> logging.Logger: logger = logging.getLogger("securecheck") if logger.handlers: return logger logger.setLevel(logging.INFO) logger.propagate = False formatter = logging.Formatter( fmt="%(asctime)s | %(levelname)s | %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) file_handler = RotatingFileHandler(log_file, maxBytes=1_000_000, backupCount=5, encoding="utf-8") file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger def attach_run_handler(logger: logging.Logger, run_log_file: Path) -> RotatingFileHandler: formatter = logging.Formatter( fmt="%(asctime)s | %(levelname)s | %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) handler = RotatingFileHandler(run_log_file, maxBytes=2_000_000, backupCount=2, encoding="utf-8") handler.setFormatter(formatter) logger.addHandler(handler) return handler