feat: add logging

This commit is contained in:
2026-08-14 17:19:10 +03:00
parent d4851dfdb7
commit aac1b435af
6 changed files with 256 additions and 0 deletions
@@ -0,0 +1,25 @@
## 1. Базовый logger и конфигурация
- [x] 1.1 Добавить валидируемый `LOG_LEVEL`, его production default и пример в backend-конфигурацию.
- [x] 1.2 Добавить `nestjs-pino`, настроить JSON stdout, уровни debug/info/warn/error, redaction и allowlisted HTTP serializers.
- [x] 1.3 Подключить Pino к Nest bootstrap с lifecycle-событиями запуска и штатного завершения.
## 2. Контекст и HTTP-события
- [x] 2.1 Добавить request context на `AsyncLocalStorage`: server-generated request ID, безопасный client request ID и `X-Request-ID` response header.
- [x] 2.2 Настроить CORS для чтения `X-Request-ID` browser-клиентом.
- [x] 2.3 Добавить единственное HTTP completion-событие с безопасным route template, duration и уровнем по outcome.
- [x] 2.4 Передавать public error code и stack 5xx из exception filter в completion-событие без изменения problem response.
## 3. Миграция backend-событий
- [x] 3.1 Перевести T-Bank client на allowlisted success/retry/failure события с duration, gRPC code и attempts.
- [x] 3.2 Перевести существующие Portfolio и Upcoming Events события на Pino logger и удалить прямой `Nest Logger`.
- [x] 3.3 Добавить внутренние user ID и brokerage account ID в контекст только в местах, где они уже доступны.
## 4. Проверка
- [x] 4.1 Добавить unit-тесты logger и config validation для уровней, JSON-формата и отсутствия запрещённых полей.
- [x] 4.2 Добавить backend e2e-тесты `X-Request-ID`, CORS, одного completion-события, 5xx error code/stack и безопасной деградации logging failure.
- [x] 4.3 Добавить тесты T-Bank client для уровней success/retry/final failure и correlation context.
- [x] 4.4 Выполнить `npm run lint`, `npm test`, `npm run build` в backend и `openspec validate add-backend-structured-logging --type change --store wealth-ledger-specs`.