class Rack::Ougai::AttachRequestID

Constants

REQUEST_ID_KEY

Public Class Methods

new(app, opts = {}) click to toggle source
# File lib/rack/ougai/attach_requestid.rb, line 8
def initialize(app, opts = {})
  @app = app

  @storage = opts[:storage] || proc { Thread.current }
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/ougai/attach_requestid.rb, line 14
def call(env)
  parent = env[Rack::RACK_LOGGER]

  request_id = env[REQUEST_ID_KEY]

  if request_id.nil?
    parent.warn "No request ID in storage (is Rack::RequestID in your middleware stack?)."
  end

  env[Rack::RACK_LOGGER] = parent.child(request_id: request_id)
  ret = @app.call(env)
  env[Rack::RACK_LOGGER] = parent

  ret
end