class Streamlog::LogColorize
Constants
- REXP_COMPLETE
- REXP_CONTROLLER
- REXP_RENDER
- REXP_RENDER_WITHIN
- REXP_REQUEST
- REXP_SQL_QUERY
Public Instance Methods
colorize_line(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 10 def colorize_line(line) line = strip_ansi_colors(line) line = colorize(line) rescue => e puts "Could not colorize: #{e.message}" line end
Private Instance Methods
colorize(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 24 def colorize(line) case line when REXP_REQUEST then colorize_request(line) when REXP_CONTROLLER then colorize_controller(line) when REXP_RENDER then colorize_render(line) when REXP_RENDER_WITHIN then colorize_render_within(line) when REXP_COMPLETE then colorize_complete(line) when REXP_SQL_QUERY then colorize_sql_query(line) else line end end
colorize_complete(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 86 def colorize_complete(line) data = regex_parse(line.match(REXP_COMPLETE)) status = span(data[:status], data[:status] =~ /^2/ ? 'log-status success' : 'log-status failure') total_time = span(data[:total_time], 'log-total-time') "Completed #{status} in #{total_time} #{data[:last_bit]}" end
colorize_controller(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 53 def colorize_controller(line) data = regex_parse(line.match(REXP_CONTROLLER)) controller = span(data[:controller], 'log-controller') action = span(data[:action], 'log-action') format = span(data[:format], 'log-format') "Processing by #{controller}##{action} as #{format}" end
colorize_render(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 61 def colorize_render(line) data = regex_parse(line.match(REXP_RENDER)) path = data[:path] template_name = span(data[:template_name], 'log-template-name') rendering_time = span(data[:rendering_time], 'log-rendering-time') "#{space}Rendered #{path}#{template_name} (#{rendering_time})" end
colorize_render_within(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 69 def colorize_render_within(line) data = regex_parse(line.match(REXP_RENDER_WITHIN)) path = data[:path] layout_name = span(data[:layout_name], 'log-layout-name') template_name = span(data[:template_name], 'log-template-name') rendering_time = span(data[:rendering_time], 'log-rendering-time') "#{space}Rendered #{path}#{template_name} within #{layout_name} (#{rendering_time})" end
colorize_request(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 44 def colorize_request(line) data = regex_parse(line.match(REXP_REQUEST)) method = span(data[:method], 'log-method') path = span(data[:path], 'log-path') ip = span(data[:ip], 'log-ip') date = span(data[:date], 'log-date') "Started #{method} \"#{path}\" for #{ip} at #{date}" end
colorize_sql_query(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 78 def colorize_sql_query(line) data = regex_parse(line.match(REXP_SQL_QUERY)) model_load = span(data[:model_load], 'log-model-load') rendering_time = span(data[:rendering_time], 'log-rendering-time') sql_query = data[:sql_query] "#{space}#{model_load} (#{rendering_time}) #{sql_query}" end
regex_parse(match)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 93 def regex_parse(match) Hash[match.names.collect { |k| k.to_sym }.zip(match.captures)] end
space()
click to toggle source
# File lib/streamlog/log_colorize.rb, line 40 def space ' ' end
span(item, classname)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 36 def span(item, classname) "<span class='#{classname}'>#{item}</span>" end
strip_ansi_colors(line)
click to toggle source
# File lib/streamlog/log_colorize.rb, line 20 def strip_ansi_colors(line) line.gsub(/\e\[(\d+)m/, '') end