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'
GLIA_ACCOUNT_ID =
'HTTP_GLIA_ACCOUNT_ID'
GLIA_USER_ID =
'HTTP_GLIA_USER_ID'

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of RequestLogger.



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

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



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

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