Class: Salestation::Web::RequestLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/salestation/web/request_logger.rb

Constant Summary collapse

DURATION_PRECISION =
6
REMOTE_ADDR =
'REMOTE_ADDR'
REQUEST_URI =
'REQUEST_URI'
REQUEST_METHOD =
'REQUEST_METHOD'
QUERY_STRING =
'QUERY_STRING'
CONTENT_TYPE =
'CONTENT_TYPE'
HTTP_USER_AGENT =
'HTTP_USER_AGENT'
HTTP_ACCEPT =
'HTTP_ACCEPT'
HTTP_ORIGIN =
'HTTP_ORIGIN'
SERVER_NAME =
'SERVER_NAME'

Instance Method Summary collapse

Constructor Details

#initialize(app, logger, log_response_body: false, level: :info) ⇒ RequestLogger

Returns a new instance of RequestLogger.



17
18
19
20
21
22
# File 'lib/salestation/web/request_logger.rb', line 17

def initialize(app, logger, log_response_body: false, level: :info)
  @app = app
  @logger = logger
  @log_response_body = log_response_body
  @level = level
end

Instance Method Details

#call(env) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/salestation/web/request_logger.rb', line 24

def call(env)
  began_at = system_monotonic_time

  @app.call(env).tap do |status, headers, body|
    @logger.public_send(
      determine_log_level(status),
      'Processed request',
      response_log(env, status, headers, body, began_at)
    )
  end
end