如何使用StreamSets解析日志文件的多行记录?

时间:2017-07-09 10:53:15

标签: regex parsing logging cloudera streamsets

我使用StreamSets解析日志文件,StreamSets逐行解析的问题和我的日志记录是多行,类似这样

00:01:03.930 [WebContainer : 41] Outbound message:
00:01:03.930 [WebContainer : 41] Values to hide NewPassword -- mask -- .+

我尝试了正则表达式和grok模式,但新的行标记对我来说并不适合。 那么,如何让StreamSets将记录解析为多行?

2 个答案:

答案 0 :(得分:1)

我创建了自定义处理器来解析我的文件。我按照这个教程工作得很好,就像我想要的那样 https://github.com/streamsets/tutorials/tree/master/tutorial-origin

答案 1 :(得分:0)

我会尝试使用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);
  }
}