2012-03-17 76 views
0

我也有類似的記錄:如何分析多行日誌條目?

1. ACMEService|73312583[INFO|16/03/2012 12:39:03]: ********** Starting the operation ********** 
2. OtherService|73312584[INFO|16/03/2012 12:39:03]: Exception occured... 
3. ACMEService|73312583[INFO|16/03/2012 12:39:04]: **** JAXB Objects **** 
4. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
5. <ns9:local> 
6. <ns2:Header> 
7.  <ns6:id>73312583</ns6:id> 
8..... 
9. OtherService|73312584[INFO|16/03/2012 12:39:03]: End processing 
10. ACMEService|73312583[INFO|16/03/2012 12:39:03]: ********** End of the operation ********** 

ACMEService是服務的名稱和號碼73312583標識的請求。我想顯示ACMEService請求號碼73312583的日誌條目(第1,3-8行,10)。 我不知道如何顯示它們,因爲還有一個多行日誌條目(第3 - 8行)。 是否有GUI工具?或者我可以使用linux命令grep來完成嗎?有人可以給我一個例子嗎? 謝謝!

回答

0

agrepgrep變體,它搜索多行記錄。我已經用了很長時間回憶起如何使用-d delimeter選項,但它應該適合您。

使用sed連接線和grepping通過那些是另一種選擇。 This似乎做了類似於你正在尋找的東西。

+0

非常感謝,agrep對我來說非常棒! – Viktor 2012-03-19 10:41:51

+0

我很高興它爲你工作。 – 2012-03-19 15:10:02

0

通常我會編寫一個perl腳本來解析構建幾個關聯數組的日誌文件並打印我之後的信息。這些腳本大多是一次性的。

您在多線程環境中編寫日誌文件,您能確定第3至第8行是連續寫入的嗎?如果不是,則需要調整日誌記錄以輸出一個標籤,該標籤可以在每條記錄行上由您的解析腳本識別。