28 lines
945 B
Python
28 lines
945 B
Python
"""Configuración de logging de la aplicación."""
|
|
|
|
import logging
|
|
import os
|
|
from datetime import datetime
|
|
|
|
|
|
def setup_logging(log_dir: str, verbose: bool = False) -> logging.Logger:
|
|
os.makedirs(log_dir, exist_ok=True)
|
|
log_file = os.path.join(log_dir, f"migration-{datetime.now():%Y-%m-%d}.log")
|
|
|
|
logger = logging.getLogger("imap_migrator")
|
|
logger.setLevel(logging.DEBUG)
|
|
logger.handlers.clear()
|
|
logger.propagate = False
|
|
|
|
file_handler = logging.FileHandler(log_file, encoding="utf-8")
|
|
file_handler.setLevel(logging.DEBUG)
|
|
file_handler.setFormatter(logging.Formatter("%(asctime)s [%(levelname)s] %(message)s"))
|
|
logger.addHandler(file_handler)
|
|
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setLevel(logging.DEBUG if verbose else logging.WARNING)
|
|
console_handler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
|
|
logger.addHandler(console_handler)
|
|
|
|
return logger
|