Crea servizio watchdog configurabile

This commit is contained in:
2026-06-30 20:28:02 +02:00
parent 124cc370e5
commit 4dca5fbf95
17 changed files with 904 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
from __future__ import annotations
import logging
from datetime import date
from pathlib import Path
def configure_logging(logs_dir: Path, component: str) -> logging.Logger:
logs_dir.mkdir(parents=True, exist_ok=True)
logger = logging.getLogger(f"bakrest.{component}")
logger.setLevel(logging.INFO)
logger.handlers.clear()
log_path = logs_dir / f"{date.today().isoformat()}-{component}.log"
formatter = logging.Formatter(
"%(asctime)s %(levelname)s [%(name)s] %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
file_handler = logging.FileHandler(log_path, encoding="utf-8")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
return logger
def close_logger(logger: logging.Logger) -> None:
for handler in list(logger.handlers):
handler.flush()
handler.close()
logger.removeHandler(handler)