Class: Dexter::LogParser
- Inherits:
-
Object
show all
- Includes:
- Logging
- Defined in:
- lib/dexter/log_parser.rb
Constant Summary
collapse
- REGEX =
/duration: (\d+\.\d+) ms (statement|execute [^:]+): (.+)/
- LINE_SEPERATOR =
": ".freeze
- DETAIL_LINE =
"DETAIL: ".freeze
Instance Method Summary
collapse
Methods included from Logging
#abort, #log
Constructor Details
#initialize(logfile, collector) ⇒ LogParser
9
10
11
12
|
# File 'lib/dexter/log_parser.rb', line 9
def initialize(logfile, collector)
@logfile = logfile
@collector = collector
end
|
Instance Method Details
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/dexter/log_parser.rb', line 14
def perform
active_line = nil
duration = nil
@logfile.each_line do |line|
if active_line
if line.include?(DETAIL_LINE)
add_parameters(active_line, line.chomp.split(DETAIL_LINE)[1])
elsif line.include?(LINE_SEPERATOR)
process_entry(active_line, duration)
active_line = nil
else
active_line << line
end
end
if !active_line && (m = REGEX.match(line.chomp))
duration = m[1].to_f
active_line = m[3]
end
end
process_entry(active_line, duration) if active_line
end
|