Я использую logstash в течение достаточно долгого времени. Я попытался использовать собственный разделитель в плагине File. Я читаю статический файл. Я вижу, что файловый плагин извлекает данные размером 32 КБ и передает их в токенизатор для разделения по разделителю.
data = watched_file.file_read(32768)
changed = true
watched_file.buffer_extract(data).each do |line|
listener.accept(line)
@sincedb[watched_file.inode] += (line.bytesize + @delimiter_byte_size)
end
Что происходит, когда последний байт не является новой строкой (то есть частью строки). Мое регулярное выражение терпит неудачу в частичной строке и пропускает это. Я теряю событие в этом случае. Я видел это на пользовательском разделителе, который может произойти и с разделителем \n. Пожалуйста, просветите меня.