foundation

Logging

Пишите structured logs с request context, levels, redaction, correlation IDs и production-friendly volume.

В продакшене Node пишет структурированные логи (JSON lines), чтобы агрегаторы искали по полям — не строки `console.log`.

					logger.info({
  reqId: req.id,
  userId: req.user?.id,
  method: req.method,
  path: req.path,
  durationMs: Date.now() - start,
  status: res.statusCode,
}, 'request completed');
				

Уровни: error/warn — действия; info — жизненный цикл запроса; debug/trace по env. Редактируйте пароли, токены, PAN. Correlation ID в middleware и через async context (AsyncLocalStorage).

Объём: сэмплируйте debug; не логируйте целые body; счётчики — в метрики.

На интервью: structured vs text; correlation между сервисами; что нельзя в логах.

Типовые ошибки: секреты на error path; разные форматы; синхронный logger под нагрузкой блокирует event loop.

Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.

Чеклист:

  • Стабильная JSON-схема между сервисами.
  • Request ID в каждой строке трейса.
  • Протестированное редактирование.
  • Уровень логов по окружению.