import logging
import os

# Função para configurar o logger
def setup_logger(logger: logging.Logger = None, level: int = logging.INFO) -> logging.Logger:
    """
    configura o logger para gravar em arquivo ou console.
    :param logger: Logger personalizado (default: Console)
    :param level: Nível de log (default: logging.INFO)
    """
    if isinstance(logger, logging.Logger):
        return logger

    name = "DMT_SMTP"
    logger = logging.getLogger(name)
    logger.setLevel(level)
    logger.propagate = False  # Evita propagação para o root logger

    # Verificar se já há handlers
    if not logger.handlers:
        formatter = logging.Formatter('%(asctime)s - %(levelname)s [SMTP] - %(message)s', '%H:%M:%S')
        console_handler = logging.StreamHandler()
        console_handler.setLevel(level)
        console_handler.setFormatter(formatter)
        logger.addHandler(console_handler)

    return logger