Class: Lograge::Formatters::RailsLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/lograge/formatters/rails_logger.rb

Constant Summary collapse

INTERNAL_PARAMS =
%w(controller action format _method only_path)

Instance Method Summary collapse

Instance Method Details

#call(data) ⇒ Object



6
7
8
9
10
11
# File 'lib/lograge/formatters/rails_logger.rb', line 6

def call(data)
  lines = start_processing(data)
  lines << completed(data)

  lines.join("\n")
end

#completed(data) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/lograge/formatters/rails_logger.rb', line 35

def completed(data)
  status = data[:status]
  duration = data[:duration].round

  if data[:error]
    "Error #{status} #{data[:error]} after #{duration}ms"
  else
    lines = []
    additions = []

    additions << "ActiveRecord: %.1fms" % data[:db].to_f

    lines << "Completed #{status} #{Rack::Utils::HTTP_STATUS_CODES[status]} in #{duration}ms"
    lines << " (#{additions.join(" | ")})" unless additions.blank?

    lines.join("\n")
  end
end

#start_processing(data) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/lograge/formatters/rails_logger.rb', line 13

def start_processing(data)
  params  = data[:params].except(*INTERNAL_PARAMS)
  format  = data[:format]
  format  = format.to_s.upcase if format.is_a?(Symbol)

  lines = []

  lines << started_request_message(data)
  lines << "Processing by #{data[:controller]}##{data[:action]} as #{format}"
  lines << "  Parameters: #{params.inspect}" unless params.empty?

  lines
end

#started_request_message(data) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/lograge/formatters/rails_logger.rb', line 27

def started_request_message(data)
  'Started %s "%s" for %s at %s' % [
    data[:method],
    data[:path],
    data[:remote_ip],
    Time.now.to_default_s ]
end