Files
drhider/History/code-fixes/2026-08-20-logging.md
T

2.0 KiB
Raw Blame History

2026-08-20 — Максимальное логирование (v0.0.51)

Проблема

SSE рвётся на проде (пару минут), обработка при этом продолжается (воркер жив). Логов в поде не было — приложение не писало в stdout, нельзя было диагностировать обрыв (внешний шлюз vs генератор).

Решение

  1. site/app.pysetup_logging():
    • уровень из env LOG_LEVEL (DEBUG/INFO/WARNING), default INFO
    • logging.basicConfig(..., stream=sys.stderr, force=True) — в stdout/stderr пода
    • формат с таймстампом; уровни для логгеров drhider/app/routes/session
    • LOG_LEVEL задаётся через env-переменные приложения на платформе
  2. site/routes/api_bp.py — подробные логи:
    • upload: каждый файл (имя, размер), итог, ошибки
    • process_stream: start, worker start/done (время, токены, zip_len), каждое событие progress (start/done) с idx/name/elapsed, disconnect на heartbeat/progress/complete/error (с причиной), result/complete, error event
  3. VERSION поднята до 0.0.51

Проверка (локально, DEBUG)

Upload 1 файла + SSE: видны все события от upload до complete. LLM NER failed: Illegal header value b'Bearer ' — ожидаемо без ключа (локально).

Как читать логи пода после деплоя

kubectl logs -n 20a75175-a58c-49cb-b8fa-e86367b1a8dc <pod> --tail=500 --timestamps
  • Если process_stream: disconnect on progress — клиент/шлюз оборвал.
  • Если worker дошёл до complete, а клиент не получил — рвёт шлюз/браузер.
  • Если worker: exception — ошибка обработки.