diff --git a/skywipe/logger.py b/skywipe/logger.py index 43058f2..d3adf7f 100644 --- a/skywipe/logger.py +++ b/skywipe/logger.py @@ -68,16 +68,18 @@ def setup_logger(verbose: bool = False, log_file: Path | None = None) -> logging logger.addHandler(error_handler) if log_file: - if not file_handlers: - log_file.parent.mkdir(parents=True, exist_ok=True) - file_handler = logging.FileHandler(log_file, encoding="utf-8") - file_handler.setLevel(logging.DEBUG) - file_formatter = logging.Formatter( - fmt="%(asctime)s - %(name)s - %(levelname)s - %(message)s", - datefmt="%Y-%m-%d %H:%M:%S" - ) - file_handler.setFormatter(file_formatter) - logger.addHandler(file_handler) + for handler in file_handlers: + handler.close() + logger.removeHandler(handler) + log_file.parent.mkdir(parents=True, exist_ok=True) + file_handler = logging.FileHandler(log_file, encoding="utf-8") + file_handler.setLevel(logging.DEBUG) + file_formatter = logging.Formatter( + fmt="%(asctime)s - %(name)s - %(levelname)s - %(message)s", + datefmt="%Y-%m-%d %H:%M:%S" + ) + file_handler.setFormatter(file_formatter) + logger.addHandler(file_handler) else: for handler in file_handlers: handler.close()