refactor(clew): create log file on first write
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user