Files
docs/adr/008-pino-backend-logging.md
T

1.7 KiB
Raw Permalink Blame History

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: содержимое таких сообщений требует отдельной проверки.