# Соглашения по ведению журнала

> Категории уровней ведения журнала

---

Индекс LLMS: [llms.txt](/ru/llms.txt)

---

etcd использует библиотеку [zap][zap] для ведения журнала вывода приложения, категоризированного по *уровням*. Уровень сообщения в журнале определяется в соответствии со следующими соглашениями:

* Логи DebugLevel обычно объёмные и обычно отключены в рабочей среде.
  * Примеры:
    * Отправка обычного сообщения удалённому узлу
    * Запись записи журнала на диск

* Уровень InfoLevel является уровнем ведения журнала по умолчанию.
  * Примеры:
    * Конфигурация при запуске
    * Начало создания снимка
    * Добавление нового узла в кластер
    * Добавление нового пользователя в подсистему аутентификации

* Журналы уровня Warn более важны, чем Info, но не требуют индивидуального человеческого контроля.
  * Примеры:
    * Неудача при отправке сообщения Raft удалённому узлу
    * Неудача при получении сообщения heartbeat в течение заданного тайм-аута выборов

* Журналы уровня ошибок имеют высокий приоритет. Если приложение работает без сбоев, оно не должно генерировать журналы уровня ошибок.
  * Примеры:
    * Неудача выделения дискового пространства для WAL

* PanicLevel записывает сообщение, а затем вызывает панику.
  * Примеры:
    * Сбой при кодировании сообщений Raft

* FatalLevel записывает сообщение, а затем вызывает os.Exit(1).
  * Примеры:
    * Неудача при сохранении снимка Raft

[zap]: https://github.com/uber-go/zap
