Перейти к содержимому
Разделы
ЯзыкRUEN

v2.1Руководство

Встроенные форматы

Пять форматов, которые Сверло понимает без настройки, и поля, которые каждый из них даёт.

Формат выбирается параметром format в createParser. Если ни один не подходит, опишите строку своим шаблоном.

Сводка#

ФорматПример строкиПоля в rec.fields
nginx-combined10.0.0.7 - - [01/Oct/2026:09:14:07 +0000] "GET /a HTTP/1.1" 200 512 "-" "curl/8"ip, method, path, status, bytes, referer, agent
json-lines{"time":"2026-10-01T09:14:07Z","level":"warn","msg":"slow"}все ключи объекта, кроме служебных
logfmtts=2026-10-01T09:14:07Z level=info msg="started" port=8080все пары ключ=значение
syslog<34>Oct 1 09:14:07 host app[231]: failed loginhost, app, pid, facility
customзадаётся patternполя из шаблона

nginx-combined#

Время берётся из [день/месяц/год:время зона]. Если в строке есть request_time в конце, как в расширенном формате, поле добавляется числом. Статус и размер всегда числа, прочерк - превращается в null.

json-lines#

Одна строка — один объект. Имена времени и уровня ищутся среди ts, time, timestamp, @timestamp и level, lvl, severity. Сообщение берётся из msg или message. Остальные ключи уходят в rec.fields без изменений, вложенные объекты сохраняются как есть.

json
{"time":"2026-10-01T09:14:07Z","level":"warn","msg":"slow query","ms":812,"table":"orders"}

logfmt#

Значения в кавычках могут содержать пробелы и экранированные кавычки. Значение без кавычек заканчивается пробелом. Числа и true/false приводятся к своим типам, если не задать typed: false.

syslog#

Поддерживается классический формат RFC 3164. Год в такой строке не указан, поэтому его нужно передать: createParser({ format: 'syslog', year: 2026 }). Без параметра берётся текущий год, и для декабрьских логов, прочитанных в январе, это даст неверную дату.

Таймзона

Если в строке нет смещения, время считается локальным временем процесса. На сервере это обычно UTC, на ноутбуке разработчика нет. Задавайте timezone: 'UTC' явно, чтобы результат не зависел от машины.

Обновлено: