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
|
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:
|
def relative_to(root: Path, path: Path) -> Path:
|
||||||
return path.resolve().relative_to(root.resolve())
|
return path.resolve().relative_to(root.resolve())
|
||||||
|
|
||||||
@@ -119,12 +128,12 @@ def extract_archive(
|
|||||||
def configure_logging(output_root: Path) -> None:
|
def configure_logging(output_root: Path) -> None:
|
||||||
log_level = logging.INFO
|
log_level = logging.INFO
|
||||||
timestamp = datetime.now(UTC).strftime("%Y%m%dT%H%M%SZ")
|
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"
|
log_file = logs_dir / f"{logging.getLevelName(log_level)}-clew-{timestamp}.log"
|
||||||
|
|
||||||
formatter = logging.Formatter("%(message)s")
|
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)
|
file_handler.setFormatter(formatter)
|
||||||
|
|
||||||
stream_handler = logging.StreamHandler()
|
stream_handler = logging.StreamHandler()
|
||||||
|
|||||||
Reference in New Issue
Block a user