# 2026-08-20 — Максимальное логирование (v0.0.51) ## Проблема SSE рвётся на проде (пару минут), обработка при этом продолжается (воркер жив). Логов в поде не было — приложение не писало в stdout, нельзя было диагностировать обрыв (внешний шлюз vs генератор). ## Решение 1. `site/app.py` — `setup_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 --tail=500 --timestamps ``` - Если `process_stream: disconnect on progress` — клиент/шлюз оборвал. - Если worker дошёл до `complete`, а клиент не получил — рвёт шлюз/браузер. - Если `worker: exception` — ошибка обработки.