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")