class Ahora::Middleware::RequestLogger

Constants

HTTP_STATUS_CODES

Every standard HTTP code mapped to the appropriate message. Generated with:

curl -s http://www.iana.org/assignments/http-status-codes | \
  ruby -ane 'm = /^(\d{3}) +(\S[^\[(]+)/.match($_) and
             puts "      #{m[1]}  => \x27#{m[2].strip}x27,"'

Public Class Methods

new(app, logger) click to toggle source
Calls superclass method
# File lib/ahora/middleware/request_logger.rb, line 4
def initialize(app, logger)
  super(app)
  @logger = logger || begin
    require 'logger'
    Logger.new(STDOUT)
  end
end

Public Instance Methods

call(env) click to toggle source
Calls superclass method
# File lib/ahora/middleware/request_logger.rb, line 12
def call(env)
  @logger.info "#{env[:method].to_s.upcase} #{env[:url].to_s}"
  @started = Time.now
  super
end
on_complete(env) click to toggle source
# File lib/ahora/middleware/request_logger.rb, line 18
def on_complete(env)
  duration = 1000.0 * (Time.now - @started)
  kbytes = env[:body].to_s.length / 1024.0
  @logger.info "--> %d %s %.2fKB (%.1fms)" % [env[:status], HTTP_STATUS_CODES[env[:status]], kbytes, duration]
end