Перейти к содержанию

Модуль логирования и анализа логов (Logger & Log Analyzer)

Этот модуль отвечает за централизованное логирование работы основного приложения и вспомогательных служб, а также за интеллектуальный анализ накопленных логов с использованием моделей искусственного интеллекта Gemini.

Основные возможности

  1. Режимы работы (DEBUG / PROD):
  2. В режиме DEBUG (MODE=dev или DEBUG=true в файле .env) логируются все события, включая уровень logging.DEBUG.
  3. В режиме PROD события уровня logging.DEBUG отфильтровываются для экономии места на диске.

  4. Запись в файлы без дублирования:

  5. Логи записываются в файлы info.log, debug.log, errors.log и log.json в директории logs/.
  6. Настроена опция propagate = False, что исключает появление дублирующихся сообщений в консоли uvicorn/fastapi.

  7. Сбор логов сторонних сервисов:

  8. При запуске через run.ps1 логи от процессов uvicorn, cloudflared и foundry перенаправляются в единую папку logs/:

    • logs/uvicorn.log — логи веб-сервера FastAPI.
    • logs/cloudflared.log — логи туннеля Cloudflare.
    • logs/foundry.log — логи локальной службы ИИ Microsoft AI Foundry.
  9. Интеллектуальный анализ логов:

  10. Фоновая служба log_analyzer периодически сканирует директорию logs/.
  11. При превышении логом установленного размера (например, 10 МБ, задается переменной LOG_MAX_SIZE_MB в .env) запускается автоматический анализ через Gemini.
  12. Модель формирует отчет (logs/reports/report_<имя_лога>_<дата>.md) с разбором ошибок, предупреждений, трендов и рекомендаций по исправлению.
  13. После успешного анализа оригинальный лог-файл очищается (размер становится 0 байт).
  14. Все индивидуальные отчеты автоматически консолидируются в единый журнал состояния системы logs/reports/master_journal.md.

Конфигурация (.env)

Настройка параметров работы логгера осуществляется через файл .env в корне проекта:

# Режим работы (dev/debug для DEBUG, prod для PROD)
MODE=dev
DEBUG=true

# Максимальный размер лог-файла перед анализом (в мегабайтах)
LOG_MAX_SIZE_MB=10.0

Структура файлов

  • logger.py — Класс инициализации консольного, файлового и JSON логирования.
  • log_analyzer.py — Скрипт периодического мониторинга размеров файлов и генерации умных отчетов с Gemini.
  • main.py — Точка входа приложения, запускающая фоновую задачу анализатора при старте FastAPI.