2012-03-17 7 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

agrepは、複数行のレコードを検索するgrepです。私はあまりにも長い時間を使用して、-d delimeterオプションを使用する方法を覚えていますが、それはあなたのために働くはずです。

sedを使用して行を結合し、greppingを使用する方法もあります。 Thisはあなたが探しているものに似た何かをするようです。

+0

素晴らしい、ありがとう、agrepは私に素晴らしいです! – Viktor

+0

私はあなたのために働いてうれしいです。 –

0

通常、私はいくつかの連想配列を構築し、後に情報を印刷するログファイルを解析するためのperlスクリプトを書いています。これらのスクリプトは主に一回限りです。

マルチスレッド環境でログファイルを書きますが、3行目から8行目までが連続して書かれていることを確認できますか?そうでなければ、すべてのログラインで解析スクリプトが認識できるラベルを出力するようにログを調整する必要があります。

関連する問題