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

How to parse multiple lines record of Log file using StreamSets?

我在用StreamSets解析一个Log文件,问题是StreamSets是逐行解析的,我的log记录是多行,像这样

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);
  }
}