# logger_conf.py
"""
Configuration du logging pour agent_v0.

- Log vers console
- Log vers fichier rotatif logs/agent_v0.log
"""

from __future__ import annotations

import logging
from logging.handlers import RotatingFileHandler

from config import LOG_FILE


def setup_logging(level: int = logging.INFO) -> None:
    """
    Configure le logging global de l'application.

    À appeler une seule fois au démarrage (dans main.py).
    """
    logger = logging.getLogger()

    # Éviter de dupliquer les handlers si setup_logging est rappelé
    if logger.handlers:
        return

    logger.setLevel(level)

    formatter = logging.Formatter(
        "[%(asctime)s] [%(levelname)s] %(name)s: %(message)s"
    )

    # Handler fichier rotatif
    file_handler = RotatingFileHandler(
        LOG_FILE,
        maxBytes=5 * 1024 * 1024,  # 5 Mo
        backupCount=3,
        encoding="utf-8",
    )
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)

    # Handler console
    console_handler = logging.StreamHandler()
    console_handler.setFormatter(formatter)
    logger.addHandler(console_handler)

    logging.getLogger(__name__).info("Logging initialisé. Fichier log = %s", LOG_FILE)
