class Rack::XIDLogging

Public Class Methods

new(app, root_logger, header_name = 'XID', &block) click to toggle source
# File lib/unicorn-cuba-base/rack/xid_logging.rb, line 3
def initialize(app, root_logger, header_name = 'XID', &block)
        @root_logger = root_logger
        @header_name = header_name
        @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/unicorn-cuba-base/rack/xid_logging.rb, line 9
def call(env)
        begin
                xid = env["HTTP_#{@header_name.upcase.tr('-', '_')}"]
                if xid
                        env['xid'] = {@header_name => xid}
                        @root_logger.with_meta_context(xid: xid) do
                                return @app.call(env)
                        end
                else
                        return @app.call(env)
                end
        ensure
        end
end