ftp idempotente e istanziabile più volte + logghing su stout x promtail

This commit is contained in:
2025-11-01 15:58:02 +01:00
parent 1d7d33df0b
commit 76094f7641
8 changed files with 132766 additions and 71 deletions

View File

@@ -4,6 +4,7 @@ import logging
import os
import signal
from collections.abc import Callable, Coroutine
from logging.handlers import RotatingFileHandler
from typing import Any
import aiomysql
@@ -33,24 +34,37 @@ class WorkerFormatter(logging.Formatter):
def setup_logging(log_filename: str, log_level_str: str):
"""Configura il logging globale.
"""Configura il logging globale con rotation automatica.
Args:
log_filename (str): Percorso del file di log.
log_level_str (str): Livello di log (es. "INFO", "DEBUG").
"""
logger = logging.getLogger()
handler = logging.FileHandler(log_filename)
formatter = WorkerFormatter("%(asctime)s - PID: %(process)d.Worker-%(worker_id)s.%(name)s.%(funcName)s.%(levelname)s: %(message)s")
handler.setFormatter(formatter)
# Rimuovi eventuali handler esistenti e aggiungi il nostro
# Rimuovi eventuali handler esistenti
if logger.hasHandlers():
logger.handlers.clear()
logger.addHandler(handler)
# Handler per file con rotation (max 10MB per file, mantiene 5 backup)
file_handler = RotatingFileHandler(
log_filename,
maxBytes=10 * 1024 * 1024, # 10 MB
backupCount=5, # Mantiene 5 file di backup
encoding="utf-8"
)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
# Handler per console (utile per Docker)
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
log_level = getattr(logging, log_level_str.upper(), logging.INFO)
logger.setLevel(log_level)
logger.info("Logging configurato correttamente")
logger.info("Logging configurato correttamente con rotation (10MB, 5 backup)")
def setup_signal_handlers(logger: logging.Logger):