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

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

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

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

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

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

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

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

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

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

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

Каждый биндинг отдаёт baseline-значения bucket'ов как именованные методы:

Метод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; биндинги дальше будут потреблять её как vendored copy или через git-submodule и эмитить per-language константы из неё). v1.0-биндинги поставляют таблицу инлайн; как только YAML приземлится, биндинг, всё ещё хардкодящий значения, перестаёт быть conformant — расхождение между спекой и биндингом проявляется как production-divergence.

См. также