Журнал приложения
Администратор портала смотрит что сломалось в процессе, не выходя в SSH: Админка → Журнал.
Это не аудит («кто сделал действие») и не журнал заданий (итог job в portal_jobs).
0. Три слоя
Заголовок раздела «0. Три слоя»| Слой | Где | Зачем |
|---|---|---|
| Журнал в продукте | таблица portal_logs, вкладка Журнал | Ошибки и предупреждения Api / Worker / Chat |
| Stdout | Docker / Kubernetes / journalctl / Event Log | Всегда пишется; удобно для оркестратора |
| Аварийный файл | {PORTAL_DATA_DIR}/logs/portal-{process}.log | Только если PostgreSQL недоступен |
Логи nginx, Postgres, Redis, Portal Office, LiveKit в эту таблицу не попадают — смотрите канал установки ниже.
1. Как пользоваться вкладкой
Заголовок раздела «1. Как пользоваться вкладкой»- Войдите как администратор портала.
- Админка → Журнал.
- Фильтры: уровень, процесс (
api/worker/chat), текст, correlation id, id задания. - Карточка строки — полный текст, стек, properties, ссылка на задание.
- Обзор показывает 5 последних Error и кнопку «Все в журнале».
- У failed-задания: Найти в журнале (
jobId).
Настройки на той же странице (без рестарта Api/Worker/Chat):
| Поле | По умолчанию | Смысл |
|---|---|---|
| Уровень в БД | Warning | Warning / Error / Critical. Information — только для указанных категорий |
| Срок | 14 дней (1…365) | Старше — удаляет job logging.purge |
| Потолок | 256 МБ (16…4096) | Сверх лимита удаляются самые старые |
| Категории Info | пусто | Например Portal.Application.Jobs |
| Маскирование | вкл | Пароли, bearer, connection strings |
Очистить журнал удаляет все строки portal_logs (аудит и задания не трогает).
Выгрузить — txt или json за текущий фильтр (до 5000 строк).
Служба Журнал приложения (logging): выкл = только stdout; ⋮ → Запустить = ручной purge.
2. Correlation id
Заголовок раздела «2. Correlation id»Каждый HTTP-запрос к Api получает X-Correlation-Id (свой или сгенерированный) — тот же id в ответе и в строке журнала.
При ошибке 500 администратор видит correlationId в JSON; обычным пользователям по-прежнему «Внутренняя ошибка сервера».
Задания Worker наследуют id из payload.
3. Stdout по каналам установки
Заголовок раздела «3. Stdout по каналам установки»Сначала откройте Админка → Журнал. Если записи нет (служба выкл, старт до БД, другой процесс) — stdout:
Docker Compose
docker compose logs --tail=200 backend worker chatKubernetes
kubectl -n portal logs deploy/portal-backend --tail=200kubectl -n portal logs deploy/portal-worker --tail=200Native Linux
journalctl -u portal-api -u portal-worker -n 200 --no-pagerNative Windows — Event Log служб PortalApi / PortalWorker.
Опционально при установке (рестарт процесса): PORTAL_LOG_FORMAT=json в .env / portal.env / Helm logging.format — JSON в stdout для сбора в стек логов. Уровень БД задаётся только в админке.
Аварийные файлы: {PORTAL_DATA_DIR}/logs/ (Docker volume portal_data, PVC, /var/lib/portal/logs).
Support bundle (deploy/scripts/support-bundle.sh) добавляет хвост portal_logs и аварийных файлов.