多行切分

简介

processor_split_log_regex processor插件实现多行日志(例如Java程序日志)的采集。

备注:建议使用正则加速分隔符加速插件中的多行切分功能替代。 单独与非加速插件配合时,该插件必须设置为processor的第一个插件。

版本

Stable

配置参数

参数类型是否必选说明

Type

String

插件类型

SplitKey

String

切分依据的字段。

SplitRegex

String

行首正则,只有匹配上的才认为是多行日志块的行首。

默认为.*,表示每行都进行切分。

PreserveOthers

Boolen

是否保留其他非SplitKey字段。

NoKeyError

Boolean

无匹配的原始字段时是否报错。如果未添加该参数,则默认使用false,表示不报错。

样例

采集/home/test-log/路径下的multiline.log文件,并按行首正则进行多行切分。

  • 输入

echo -e  '[2022-03-03 18:00:00] xxx1\nyyyyy\nzzzzzz\n[2022-03-03 18:00:01] xxx2\nyyyyy\nzzzzzz' >> /home/test-log/multiline.log
  • 采集配置

enable: true
inputs:
  - Type: input_file
    FilePaths: 
      - /home/test-log/*.log
processors:
  - Type: processor_split_log_regex
    SplitRegex: \[\d+-\d+-\d+\s\d+:\d+:\d+]\s.*
    SplitKey: content
    PreserveOthers: true
flushers:
  - Type: flusher_stdout
    OnlyStdout: true
  • 输出

{
    "__tag__:__path__": "/home/test-log/multiline.log",
    "content": "[2022-03-03 18:00:00] xxx1\nyyyyy\nzzzzzz\n",
    "__time__": "1657367638"
}
{
    "__tag__:__path__": "/home/test-log/multiline.log",
    "content": "[2022-03-03 18:00:01] xxx2\nyyyyy\nzzzzzz",
    "__time__": "1657367638"
}

Last updated