多行切分
简介
processor_split_log_regex processor
插件实现多行日志(例如Java程序日志)的采集。 备注:该插件必须设置为processor
的第一个插件。
配置参数
参数
类型
是否必选
说明
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: file_log
LogPath: /home/test-log/
FilePattern: multiline.log
processors:
- Type: processor_split_log_regex
SplitRegex: \[\d+-\d+-\d+\s\d+:\d+:\d+]\s.*
SplitKey: content
PreserveOthers: true
flushers:
- Type: flusher_sls
Endpoint: cn-xxx.log.aliyuncs.com
ProjectName: test_project
LogstoreName: test_logstore
- 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