foundation

Уровни логирования

Выбирайте debug, info, warn и error по операционной значимости, а не по привычке разработчика.

Уровни логирования отражают операционную срочность: debug для деталей разработки, info для штатных событий, warn для восстановимых аномалий, error для сбоев, требующих внимания. Уровень — про **actionability**, а не настроение разработчика.

| Уровень | Типичное применение | |---------|---------------------| | debug | Подробности; часто выключен в production | | info | Запрос обработан, job завершён, deploy готов | | warn | Retry, deprecation, медленные зависимости | | error | Провал запроса, необработанное исключение, риск потери данных |

					if (attempt > 1) logger.warn({ attempt, provider: 'stripe' }, 'payment retry');
logger.error({ err, orderId }, 'payment failed after retries');
				

Настройте production defaults: baseline info или warn, debug временно на сервис при расследовании. Не логируйте каждую успешную итерацию цикла как error «чтобы дашборд увидел».

На интервью: уровни по окружениям, sampling vs полный debug и влияние уровней на шум алертов.

Типовые ошибки: всё на error; debug под нагрузкой; warn на ожидаемые бизнес-кейсы (404 при опечатке пользователя).

Компромисс — ясность сигнала против объёма логов и стоимости.

Чеклист:

  • Уровни привязаны к ожиданиям реакции оператора.
  • Lean defaults в production.
  • Структурированный контекст на warn/error.
  • Debug за флагами или dynamic config.