- use Util::collapse

This commit is contained in:
Jordan Sissel 2009-11-07 22:36:39 +00:00
parent b22506fa17
commit 445eada3e2

View file

@ -4,6 +4,7 @@ require 'rubygems'
require 'erb'
require 'json'
require 'lib/log'
require 'lib/util'
module LogStash
class Log
@ -23,7 +24,7 @@ module LogStash
def parse_entry(raw_entry)
# need to add @LINE
res = collapse(JSON.parse(raw_entry))
res = LogStash::Util::collapse(JSON.parse(raw_entry))
res["@LINE"] = template(@line_format, res)
fix_date(res)
@ -34,25 +35,7 @@ module LogStash
def template(fmt, entry)
erb = ERB.new(fmt)
return erb.result(binding)
end
private
def collapse(hash)
hash.each do |k, v|
if v.is_a?(Hash)
hash.delete(k)
collapse(v).each do |k2, v2|
hash["#{k}/#{k2}"] = v2
end
elsif v.is_a?(Array)
hash[k] = v.inspect
elsif not v.is_a?(String)
hash[k] = v.to_s
end
end
return hash
end
end # def template
end # class JsonLog
end
end # module LogStash::Log