Crea servizio watchdog configurabile
This commit is contained in:
34
src/bakrest/logging_setup.py
Normal file
34
src/bakrest/logging_setup.py
Normal 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)
|
||||
Reference in New Issue
Block a user