Spaces:
Running
Running
File size: 2,171 Bytes
4ad5efa |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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("Логування налаштовано") |