Class: Imprint::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/imprint/middleware.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, opts = {}) ⇒ Middleware

Returns a new instance of Middleware.



28
29
30
# File 'lib/imprint/middleware.rb', line 28

def initialize(app, opts = {})
  @app = app
end

Class Method Details

.loggerObject



20
21
22
23
24
25
26
# File 'lib/imprint/middleware.rb', line 20

def self.logger
  @logger ||= if defined?(Rails.logger)
                Rails.logger
              else
                Logger.new(STDOUT)
              end
end

.logger=(logger) ⇒ Object



16
17
18
# File 'lib/imprint/middleware.rb', line 16

def self.logger=(logger)
  @logger = logger
end

.set_request_trace_id(rack_env) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/imprint/middleware.rb', line 6

def self.set_request_trace_id(rack_env)
  trace_id = rack_env[Imprint::Tracer::TRACER_HEADER] || rack_env[Imprint::Tracer::RAILS_REQUEST_ID]
  if trace_id.nil?
    trace_id = Imprint::Tracer.rand_trace_id
    logger.info("trace_status=initiated trace_id=#{trace_id}")
  end
  Imprint::Tracer.set_trace_id(trace_id, rack_env)
  trace_id
end

Instance Method Details

#call(env) ⇒ Object



32
33
34
35
# File 'lib/imprint/middleware.rb', line 32

def call(env)
  ::Imprint::Middleware.set_request_trace_id(env)
  @app.call(env)
end