Harbor Documentation

Harbor::RequestLogger

Parent

Methods

Public Class Methods

error(event)

      # File lib/harbor/logging/request_logger.rb, line 28
28:     def self.error(event)
29:       Logging::Logger['error'].error { event.trace }
30:     end

info(event)

Logs requests and their params the configured request logger.

Format:

  #application      #time                   #duration   #ip              #method #uri      #status   #params
  [PhotoManagement] [04-02-2009 @ 14:22:40] [0.12s]     [64.134.226.23] [GET]    /products (200)     {"order" => "desc"}
      # File lib/harbor/logging/request_logger.rb, line 11
11:     def self.info(event)
12:       status = nil
13:       case
14:       when event.response.status >= 500 then status = "\033[0;31m#{event.response.status}\033[0m" # prints the status value in red
15:       when event.response.status >= 400 then status = "\033[0;33m#{event.response.status}\033[0m" # prints the status value in yellow
16:       else status = "\033[0;32m#{event.response.status}\033[0m"                             # prints the status value in green
17:       end
18: 
19:       message = "[#{self.class}] [#{event.start.strftime('%m-%d-%Y @ %H:%M:%S')}] [#{"%2.2fs" % (event.duration)}] [#{event.request.remote_ip}] [#{event.request.request_method}] #{event.request.path_info} (#{status})"
20:       message << "\t #{event.request.params.inspect}" unless event.request.params.empty?
21:       message << "\n"
22: 
23:       if (request_logger = Logging::Logger["request"]).info?
24:         request_logger.info { message }
25:       end
26:     end