import logging import os from pathlib import Path def setup_logging(log_dir="logs", log_level=logging.INFO): """ Налаштування логування. Args: log_dir (str): Директорія для зберігання логів log_level (int): Рівень логування """ # Створюємо директорію для логів, якщо вона не існує log_path = Path(log_dir) log_path.mkdir(exist_ok=True, parents=True) # Налаштовуємо формат логів log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" date_format = "%Y-%m-%d %H:%M:%S" # Налаштовуємо базовий логер logging.basicConfig( level=log_level, format=log_format, datefmt=date_format, handlers=[ logging.FileHandler(log_path / "app.log", encoding="utf-8"), logging.StreamHandler() ] ) # Налаштовуємо окремий логер для індексів index_logger = logging.getLogger("modules.data_management") index_file_handler = logging.FileHandler(log_path / "indices.log", encoding="utf-8") index_file_handler.setFormatter(logging.Formatter(log_format, date_format)) index_logger.addHandler(index_file_handler) index_logger.setLevel(log_level) # Налаштовуємо окремий логер для AI аналізу ai_logger = logging.getLogger("modules.ai_analysis") ai_file_handler = logging.FileHandler(log_path / "ai_analysis.log", encoding="utf-8") ai_file_handler.setFormatter(logging.Formatter(log_format, date_format)) ai_logger.addHandler(ai_file_handler) ai_logger.setLevel(log_level) # Зменшуємо рівень логування для деяких бібліотек logging.getLogger("urllib3").setLevel(logging.WARNING) logging.getLogger("httpx").setLevel(logging.WARNING) logging.getLogger("httpcore").setLevel(logging.WARNING) # Логуємо початок роботи logging.info("Логування налаштовано")