class Tochtli::MessageLogger

Public Instance Methods

call(env) click to toggle source
# 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