33 lines
2.0 KiB
Markdown
33 lines
2.0 KiB
Markdown
# 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 <pod> --tail=500 --timestamps
|
||
```
|
||
- Если `process_stream: disconnect on progress` — клиент/шлюз оборвал.
|
||
- Если worker дошёл до `complete`, а клиент не получил — рвёт шлюз/браузер.
|
||
- Если `worker: exception` — ошибка обработки.
|