我正在使用 StreamSets 解析日志文件,StreamSets 逐行解析的问题,我的日志记录是多行,类似这样
00:01:03.930 [WebContainer : 41] Outbound message:
00:01:03.930 [WebContainer : 41] Values to hide NewPassword -- mask -- .+
我尝试了正则表达式和 grok 模式,但新的行标签对我不起作用。那么,如何让 StreamSets 将记录解析为多行呢?
我正在使用 StreamSets 解析日志文件,StreamSets 逐行解析的问题,我的日志记录是多行,类似这样
00:01:03.930 [WebContainer : 41] Outbound message:
00:01:03.930 [WebContainer : 41] Values to hide NewPassword -- mask -- .+
我尝试了正则表达式和 grok 模式,但新的行标签对我不起作用。那么,如何让 StreamSets 将记录解析为多行呢?
我创建了自定义处理器来解析我的文件。我遵循了本教程并且工作得很好,就像我想要的一样 https://github.com/streamsets/tutorials/tree/master/tutorial-origin
我会尝试使用 Javascript 评估器(处理器)
并编写以下代码(处理多行并视为单个记录)
for(var i = 0; i < records.length; i++) {
try {
items = records[i].value['items']
<write your logic here to consider multiple lines >
}
} catch (e) {
// Send record to error
error.write(records[i], e);
}
}