"""Конфигурация логирования для пайплайна."""
import logging
import random

seed = 42

class MetricsLogFilter(logging.Filter):
    """Фильтр для исключения логов метрик из access логов"""
    
    def filter(self, record):
        if hasattr(record, 'args') and record.args and len(record.args) >= 3:
            request_path = record.args[2]
            if '/metrics' in request_path:
                return False
        return True

def setup_logging(level: int = logging.INFO) -> logging.Logger:
    """Настраивает базовые параметры логирования для приложения."""
    logging.basicConfig(
        level=level,
        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S',
    )

    random.seed(seed)
    logger = logging.getLogger(__name__)

    uvicorn_access_logger = logging.getLogger("uvicorn.access")
    uvicorn_access_logger.addFilter(MetricsLogFilter())

    return logger
