v1.8Введение
Форматы (v1)
Три формата ветки 1.x: nginx, logfmt и syslog, и ограничения по сравнению с v2.
В версии 1 доступны три формата. Форматов json-lines и пользовательских шаблонов нет; они появились в версии 2.
| Формат | Пример | rec.data |
|---|---|---|
nginx | 10.0.0.7 - - [01/Oct/2026:09:14:07 +0000] "GET / HTTP/1.1" 200 512 | ip, method, path, status, bytes |
logfmt | level=warn msg="slow" ms=812 | все пары |
syslog | <34>Oct 1 09:14:07 host app: text | host, app |
Ограничения#
- Время всегда считается UTC, даже если зона не указана.
- Для
syslogгод берётся текущий. - Значения logfmt остаются строками:
rec.data.msравно'812', а не812.
Свой формат через функцию#
Если формата нет в списке, передайте функцию-разборщик:
const parser = sverlo.parser({
format: (line) => {
const m = /^(\S+) (\w+) (.*)$/.exec(line);
return m ? { time: m[1], severity: m[2].toUpperCase(), message: m[3], data: {} } : null;
}
});Функция должна вернуть объект записи или null. Регулярное выражение с вложенными квантификаторами на длинной строке способно зависнуть, поэтому в v2 шаблоны заменили регулярки.