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

v2.1API

createParser()

Фабрика разборщика: все параметры, значения по умолчанию и методы возвращаемого объекта.

ts
function createParser(options: ParserOptions): Parser

Создаёт разборщик. Шаблон и запросы компилируются при создании, поэтому ошибки в настройке видны сразу, а не на миллионной строке.

Параметры#

ПараметрТипПо умолчаниюОписание
formatstring—Один из встроенных форматов
patternstring—Шаблон вместо format; одно из двух обязательно
timezonestringлокальная'UTC' или смещение '+03:00' для строк без зоны
yearnumberтекущийГод для формата syslog
onError'skip' | 'collect' | 'throw''skip'См. ошибки
maxErrorsnumber1000Предел для parser.errors
maxLineLengthnumber65536Предельная длина строки в символах
multilineobject—Многострочные записи
typedbooleantrueПриводить значения logfmt и JSON к числам и булевым

Одновременно format и pattern указывать нельзя.

Методы#

parser.parseLine(line)#

Разбирает одну строку. Возвращает Record или null, если строка не распознана и onError не 'throw'.

js
const rec = parser.parseLine('level=warn msg="disk 91%"');
rec.level; // 'warn'

parser.parse(text)#

Разбирает многострочный текст целиком и возвращает массив записей. Предназначен для небольших строк в тестах; для файлов используйте поток.

parser.stream(readable, opts?)#

Асинхронный итератор записей, см. потоки и API потоков.

parser.query(text)#

Компилирует запрос в функцию (rec) => boolean.

Свойства#

  • parser.errors — собранные ParseError (только при onError: 'collect');
  • parser.stats — { lines, parsed, skipped, aborted }, обновляется по ходу чтения.

Один разборщик на источник

Разборщик хранит состояние многострочной записи, поэтому не делите его между двумя одновременными потоками. Создайте по одному на источник.

Обновлено: