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 в каждой строке трейса.
- Протестированное редактирование.
- Уровень логов по окружению.