Справочная таблица уровней
Полный диапазон severity_number 1-24, отображённый на шесть канонических bucket'ов severity_text, плюс соответствие распространённым host-системам логирования (syslog, Python logging, Go slog).
Числовое перечисление
severity_number | severity_text | Основной alias | Syslog (RFC 5424) | Python logging | Go slog |
|---|---|---|---|---|---|
| 1 | TRACE | TRACE (alias TRACE1) | 7 (debug) | — | — |
| 2 | TRACE | TRACE2 | 7 | — | — |
| 3 | TRACE | TRACE3 | 7 | — | — |
| 4 | TRACE | TRACE4 | 7 | — | — |
| 5 | DEBUG | DEBUG (alias DEBUG1) | 7 | 10 | -4 |
| 6 | DEBUG | DEBUG2 | 7 | 10 | -3 |
| 7 | DEBUG | DEBUG3 | 7 | 10 | -2 |
| 8 | DEBUG | DEBUG4 | 7 | 10 | -1 |
| 9 | INFO | INFO (alias INFO1, основной) | 6 (info) | 20 | 0 |
| 10 | INFO | INFO2 | 6 | 20 | 1 |
| 11 | INFO | INFO3 | 6 | 20 | 2 |
| 12 | INFO | INFO4 | 6 | 20 | 3 |
| 13 | WARN | WARN (alias WARN1) | 4 (warning) | 30 | 4 |
| 14 | WARN | WARN2 | 4 | 30 | 5 |
| 15 | WARN | WARN3 | 4 | 30 | 6 |
| 16 | WARN | WARN4 | 4 | 30 | 7 |
| 17 | ERROR | ERROR (alias ERROR1) | 3 (err) | 40 | 8 |
| 18 | ERROR | ERROR2 | 3 | 40 | 9 |
| 19 | ERROR | ERROR3 | 3 | 40 | 10 |
| 20 | ERROR | ERROR4 | 3 | 40 | 11 |
| 21 | FATAL | FATAL (alias FATAL1) | 2 (crit) | 50 | 12 |
| 22 | FATAL | FATAL2 | 1 (alert) | 50 | 13 |
| 23 | FATAL | FATAL3 | 0 (emerg) | 50 | 14 |
| 24 | FATAL | FATAL4 | 0 | 50 | 15 |
Соответствие для 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.
См. также
- Концепция уровней — семантика bucket'ов и обоснование.
- Поля LogRecord — полная раскладка записи.
- ADR-0001 §2 (полный нормативный текст).