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