23 lines
1.7 KiB
Markdown
23 lines
1.7 KiB
Markdown
# 008. Pino для backend-логирования
|
||
|
||
**Status:** Accepted
|
||
|
||
## Context
|
||
|
||
Backend нуждается в структурированных JSON-логах с HTTP request context, уровнями, redaction и интеграцией с Nest. Самописный logger повторял бы эту инфраструктуру и переносил бы её сопровождение в проект.
|
||
|
||
## Decision
|
||
|
||
Использовать `nestjs-pino` как единственный backend logger. Он предоставляет Pino JSON stdout, request-scoped logging и интеграцию с Nest; безопасный набор HTTP-полей и redaction настраиваются в приложении.
|
||
|
||
## Consequences
|
||
|
||
Backend получает новую production dependency и использует Pino API для application-событий. Collector, retention и alerting остаются за пределами приложения.
|
||
|
||
Логирование сосредоточено на инфраструктурной границе backend и связывает
|
||
события с контекстом HTTP-запроса. В журнал передаются стабильное имя события
|
||
и разрешённые скалярные поля. Неизвестные поля отбрасываются; полные запросы,
|
||
тела ответов и секреты не являются допустимыми данными журнала. Фильтрация
|
||
полей не защищает секрет, помещённый в свободный текст сообщения или stack:
|
||
содержимое таких сообщений требует отдельной проверки.
|