Class: Tochtli::MessageLogger

Inherits:
Middleware show all
Defined in:
lib/tochtli/application.rb

Instance Method Summary collapse

Methods inherited from Middleware

#initialize

Constructor Details

This class inherits a constructor from Tochtli::Middleware

Instance Method Details

#call(env) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/tochtli/application.rb', line 100

def call(env)
  start_time       = Time.now
  message          = env[:message]
  controller_class = env[:controller_class]
  delivery_info    = env[:delivery_info]
  properties       = env[:properties]
  action           = env[:action]
  logger           = env[:logger]

  action_info = action.is_a?(Proc) ? "block at #{action.source_location.join(':')}" : action

  logger.debug "\n\nAMQP Message #{message.class.name} at #{start_time}"
  logger.debug "Processing by #{controller_class.name}##{action_info} [Thread: #{Thread.current.object_id}]"
  logger.debug "\tMessage: #{message.attributes.inspect}."
  logger.debug "\tProperties: #{properties.inspect}."
  logger.debug "\tDelivery info: exchange: #{delivery_info[:exchange]}, routing_key: #{delivery_info[:routing_key]}."

  result = @app.call(env)

  logger.debug "Message #{properties[:message_id]} processed in %.1fms." % [(Time.now - start_time) * 1000]

  result
end