2017-07-09 57 views
1

我使用StreamSets解析一个日志文件,即通过StreamSets线解析线和我的日志记录是多条线路,像这样如何使用StreamSets解析日志文件的多行记录?

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

我想正则表达式和神交模式,但新生产线的问题标记对我无效。 那么,如何让StreamSets将记录解析为多行?

+0

我无法回答你的问题 - 除非你愿意使用Python和pyparsing--但是如果你能发布一个我可以尝试的日志文件的更大样本,我将不胜感激。谢谢! –

+0

他们总是成对吗?你如何可靠地将他们分组? – metadaddy

+0

在File Tail组件的Data Format选项卡中,有一个区域显示为“Pattern for Multiline”,它在帮助“正则表达式模式来检测文本主线和多行元素的日志文件”中说过,但我不知道如何把它放在正则表达式中,因为我也必须填充主要的正则表达式。我怎样才能使用这个标签? –

回答

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