Модуль логирования и анализа логов (Logger & Log Analyzer)
Этот модуль отвечает за централизованное логирование работы основного приложения и вспомогательных служб, а также за интеллектуальный анализ накопленных логов с использованием моделей искусственного интеллекта Gemini.
Основные возможности
- Режимы работы (DEBUG / PROD):
- В режиме
DEBUG(MODE=devилиDEBUG=trueв файле.env) логируются все события, включая уровеньlogging.DEBUG. -
В режиме
PRODсобытия уровняlogging.DEBUGотфильтровываются для экономии места на диске. -
Запись в файлы без дублирования:
- Логи записываются в файлы
info.log,debug.log,errors.logиlog.jsonв директорииlogs/. -
Настроена опция
propagate = False, что исключает появление дублирующихся сообщений в консоли uvicorn/fastapi. -
Сбор логов сторонних сервисов:
-
При запуске через
run.ps1логи от процессовuvicorn,cloudflaredиfoundryперенаправляются в единую папкуlogs/:logs/uvicorn.log— логи веб-сервера FastAPI.logs/cloudflared.log— логи туннеля Cloudflare.logs/foundry.log— логи локальной службы ИИ Microsoft AI Foundry.
-
Интеллектуальный анализ логов:
- Фоновая служба
log_analyzerпериодически сканирует директориюlogs/. - При превышении логом установленного размера (например, 10 МБ, задается переменной
LOG_MAX_SIZE_MBв.env) запускается автоматический анализ через Gemini. - Модель формирует отчет (
logs/reports/report_<имя_лога>_<дата>.md) с разбором ошибок, предупреждений, трендов и рекомендаций по исправлению. - После успешного анализа оригинальный лог-файл очищается (размер становится 0 байт).
- Все индивидуальные отчеты автоматически консолидируются в единый журнал состояния системы
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.