in_tailの正規表現をテスト
in_tailのformatに正規表現を書く時は、
(修正→設定ファイル読み込み→確認) x nとしてましたが、
もっと簡単にテストしたかったので、formatで使用する正規表現のテスト方法を調べてみました。
ソースを見てみると、どうやらfluent/parserの"RegexpParser"クラスで正規表現の解析を行なっているみたいなので、このクラスでテストをしてみました。
これで少し楽に!
require 'time'
require 'fluent/log'
require 'fluent/config'
require 'fluent/engine'
require 'fluent/parser'$log ||= Fluent::Log.new
format = /^\[(?<time>[^\]]*)\] (?<log>.*)$/
time_format = '%Y/%m/%d %H:%M:%S'parser = Fluent::TextParser::RegexpParser.new(format, 'time_format' => time_format)
log = '[2012/06/07 12:00:00] aaa bbb ccc'
puts parser.call(log)
# => 1339038000
# {"log"=>"aaa bbb ccc"}