51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
# 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)
|