Class: RequestLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/sensible_logging/middlewares/request_logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, filtered_params = []) ⇒ RequestLogger

Returns a new instance of RequestLogger.



4
5
6
7
# File 'lib/sensible_logging/middlewares/request_logger.rb', line 4

def initialize(app, filtered_params = [])
  @app = app
  @filtered_params = filtered_params
end

Instance Method Details

#call(env) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/sensible_logging/middlewares/request_logger.rb', line 9

def call(env)
  req = Rack::Request.new(env)
  start_time = Time.now
  status, headers, body = @app.call(env)
  end_time = Time.now - start_time

  message = "method=#{req.request_method} path=#{req.path} status=#{status} duration=#{end_time}"
  filtered_params = filter_params(req)
  message += " params=#{filtered_params}" if req.get? && ! filtered_params.empty?
  env['logger'].info(message)
  [status, headers, body]
end