Перейти к основному содержимому

Справочная таблица уровней

Полный диапазон severity_number 1–24, отображённый на шесть канонических групп severity_text, плюс соответствие распространённым принимающим системам логирования (syslog, Python logging, Go slog).

Числовое перечисление

severity_numberseverity_textОсновной псевдонимSyslog (RFC 5424)Python loggingGo slog
1TRACETRACE (псевдоним TRACE1)7 (debug)
2TRACETRACE27
3TRACETRACE37
4TRACETRACE47
5DEBUGDEBUG (псевдоним DEBUG1)710-4
6DEBUGDEBUG2710-3
7DEBUGDEBUG3710-2
8DEBUGDEBUG4710-1
9INFOINFO (псевдоним INFO1, основной)6 (info)200
10INFOINFO26201
11INFOINFO36202
12INFOINFO46203
13WARNWARN (псевдоним WARN1)4 (warning)304
14WARNWARN24305
15WARNWARN34306
16WARNWARN44307
17ERRORERROR (псевдоним ERROR1)3 (err)408
18ERRORERROR23409
19ERRORERROR334010
20ERRORERROR434011
21FATALFATAL (псевдоним FATAL1)2 (crit)5012
22FATALFATAL21 (alert)5013
23FATALFATAL30 (emerg)5014
24FATALFATAL405015

Соответствие для Python logging и Go slog приблизительное — у этих систем более грубая детализация. dagstack-logger сохраняет детализацию OTel на emit, и преобразование в таблице отражает то, что приёмник записал бы при пробросе в принимающую систему логирования.

Канонические строки

Шесть значений severity_text зафиксированы:

"TRACE" "DEBUG" "INFO" "WARN" "ERROR" "FATAL"

Бэкенды фильтруют по точному совпадению. Добавление "INFO2" или "WARN_HIGH" сломало бы запросы на точное совпадение на каждой observability-платформе.

Основные методы уровней

Каждый биндинг отдаёт базовые значения групп как именованные методы:

Методseverity_number
trace(...)1
debug(...)5
info(...)9
warn(...)13
error(...)17
fatal(...)21

Промежуточные значения (например, INFO2 = 10, чтобы пометить информационные события на более высоком числовом уровне, чем значение по умолчанию) идут через универсальный метод:

logger.log(severity_number=10, body=..., attributes=...)

Источник истины

Таблица соответствия будет жить в _meta/severity.yaml в spec-репозитории (запланировано на v1.1; биндинги дальше будут потреблять её через vendoring или git-submodule и эмитить из неё константы для каждого языка). В биндингах v1.0 таблица поставляется инлайн; как только YAML появится, биндинг, всё ещё «зашивающий» значения в код, перестаёт быть conformant — расхождение между спекой и биндингом проявляется как production-расхождение.

См. также