51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/myslog.rb', line 51
def parse_record(records)
response = {}
while (record = records.shift) != nil
if record.start_with? "# User@Host:"
elems = record.split(" ")
response[:user] = elems[2].strip
if elems[5] == nil
response[:host] = nil
response[:host_ip] = elems[4].strip[1...-1]
else
response[:host] = elems[4].strip
response[:host_ip] = elems[5].strip[1...-1]
end
elsif record.start_with? "#"
elems = record[2..-1].strip().split " "
if elems.size == 1 && elems[0].start_with?("Time:")
response[:date] = Time.parse(record[8..-1].strip)
else
elems.each do |elem|
name, value = elem.split ":"
value.strip!
case value
when /^\d+$/
value = value.to_i
when /^\d+\.\d+(?:e[-+]\d+)?$/
value = value.to_f
end
response[name.downcase.to_sym] = value
end
end
else
response[:sql] = record
end
end
response
end
|