Spaces:
Running
Running
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("Логування налаштовано") |