0

ログファイルを解析しています:

2015-07-15 12:59:39 +0530 [ERROR] index=abc host=abc
2015-07-15 12:59:39 +0530 [WARNING] index=def
host=def
2015-07-15 12:59:39 +0530 [INFO] index=ghi host=ghi

すべてのログはタイム スタンプで始まります。

ログを個別に解析することを考えています。タイムスタンプとフェッチでそれらを分離することを考えたので、正規表現を書きました:

text = File.open('logs.txt').read
log = text[/^\d{4}\-\d{2}\-\d{2}(.*?)^\d{4}\-\d{2}\-\d{2}/m, ].to_s
.gsub(/\s/m,' ').strip.split(' ')
puts log #Prints 2015-07-15 12:59:39 +0530 [ERROR] index=abc host=abc

ただし、これは最初のログのみをフェッチします。

2015-07-15 12:59:39 +0530 [ERROR] index=abc host=abc 

残りではありません。

  1. 最初のログの後にログを取得し続けるにはどうすればよいですか?
  2. 私のアプローチよりもこれを処理するためのより良い方法はありますか?

ありがとうございました。

4

2 に答える 2

0

フォーマットは正しいですか? ログは複数行にまたがることができますか? それらが改行で区切られている場合は、単に使用できます

log = text.lines
于 2015-08-20T09:43:34.870 に答える