Spaces:
Sleeping
Sleeping
File size: 1,667 Bytes
47e4aa2 b2638ec 47e4aa2 b2638ec |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import logging
import os
from datetime import datetime
from logging.handlers import RotatingFileHandler
def configure_logging():
"""Configura le impostazioni di logging dell'applicazione."""
# Percorso assoluto per la directory logs
base_dir = os.path.dirname(os.path.abspath(__file__))
log_directory = os.path.join(base_dir, "logs")
# Crea la directory dei log se non esiste
if not os.path.exists(log_directory):
os.makedirs(log_directory)
# Nome file log con timestamp
timestamp = datetime.now().strftime("%Y%m%d")
log_file = os.path.join(log_directory, f"app_{timestamp}.log")
# Configura il logger root
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# Formattazione del log dettagliata
formatter = logging.Formatter(
'%(asctime)s - %(name)s - [%(levelname)s] - %(message)s - (%(filename)s:%(lineno)d)'
)
# Handler per il file con rotazione (10MB per file)
file_handler = RotatingFileHandler(
log_file,
maxBytes=10*1024*1024, # 10MB
backupCount=10,
encoding='utf-8'
)
file_handler.setFormatter(formatter)
file_handler.setLevel(logging.INFO)
# Handler per la console
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
console_handler.setLevel(logging.INFO)
# Rimuovi handler esistenti e aggiungi i nuovi
logger.handlers.clear()
logger.addHandler(file_handler)
logger.addHandler(console_handler)
# Test di scrittura
logging.info(f"Logging inizializzato - File: {log_file}")
logging.info("Test scrittura log") |