class BammLog::ExceptionMiddleware
Attributes
env[R]
logger[R]
request[R]
Public Class Methods
new(app, options={})
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 7 def initialize(app, options={}) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 11 def call(env) begin @request_id = SecureRandom.base64(24).tr('+/=lIO0', 'pqrsxyz') @start_time = Time.now @env = env build_request log_start log_params begin call = @app.call(env) @end_time = Time.now log_end call rescue Exception => e @end_time = Time.now log_exception(e) log_end @app.call(env) end rescue Exception => e log_exception(e) end end
Private Instance Methods
build_request()
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 39 def build_request @request = Rack::Request.new(env) end
log_end()
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 63 def log_end print "Ended #{env['REQUEST_METHOD']} \"#{env['REQUEST_URI']}\" in #{request_time_ms} ms" end
log_exception(e)
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 55 def log_exception(e) print "Bamm! #{e.class}: #{e.message}" e.backtrace.each do |line| print "#{line}" end end
log_params()
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 51 def log_params print "Parameters: #{request_params.to_hash.inspect}" end
log_start()
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 47 def log_start print "Started #{env['REQUEST_METHOD']} \"#{env['REQUEST_URI']}\"" end
print(message)
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 71 def print(message) if ENV['RACK_ENV'] != 'development' && ENV['RACK_ENV'] != 'test' message = "[#{@request_id}] #{message}" end BammLog::Logger.instance.info message end
request_body_params?()
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 80 def request_body_params? ['POST', 'PUT', 'PATCH'].include? env['REQUEST_METHOD'] end
request_params()
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 43 def request_params request.params.except(:route_info) end
request_time_ms()
click to toggle source
# File lib/bamm_log/exception_middleware.rb, line 67 def request_time_ms (@end_time-@start_time).round(4) end