refactor(clew): create log file on first write

This commit is contained in:
2026-09-07 14:47:37 -04:00
parent cf337b6c4e
commit dedb0f5913

View File

@@ -74,6 +74,15 @@ def get_folder(path: Path) -> Path:
return path
class LazyFileHandler(logging.FileHandler):
def __init__(self, path: Path, encoding: str) -> None:
super().__init__(path, encoding=encoding, delay=True)
def _open(self):
get_folder(Path(self.baseFilename).parent)
return super()._open()
def relative_to(root: Path, path: Path) -> Path:
return path.resolve().relative_to(root.resolve())
@@ -119,12 +128,12 @@ def extract_archive(
def configure_logging(output_root: Path) -> None:
log_level = logging.INFO
timestamp = datetime.now(UTC).strftime("%Y%m%dT%H%M%SZ")
logs_dir = get_folder(output_root / "logs")
logs_dir = output_root / "logs"
log_file = logs_dir / f"{logging.getLevelName(log_level)}-clew-{timestamp}.log"
formatter = logging.Formatter("%(message)s")
file_handler = logging.FileHandler(log_file, encoding="utf-8")
file_handler = LazyFileHandler(log_file, encoding="utf-8")
file_handler.setFormatter(formatter)
stream_handler = logging.StreamHandler()