class Rack::ActionLogger::Context

Public Class Methods

new(app) click to toggle source
# File lib/rack/action_logger/context.rb, line 4
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/action_logger/context.rb, line 8
def call(env)
  Emitter.new.emit do
    status_code, headers, body = @app.call(env)
    capture_rack_log(env, status_code, headers, body)
    [status_code, headers, body]
  end
end
capture_rack_log(env, status_code, headers, body) click to toggle source
# File lib/rack/action_logger/context.rb, line 16
def capture_rack_log(env, status_code, headers, body)
  rack_metrics = Rack::ActionLogger.configuration.rack_metrics.new(env, status_code, headers, body)
  return if rack_metrics.metrics.nil?
  Rack::ActionLogger::Container.set_request_log(rack_metrics.metrics, rack_metrics.tag_suffix)
  Rack::ActionLogger::Container.merge_attributes({ request_id: rack_metrics.request_id })
end