2017-07-09 56 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); 
    } 
}