class Sunspot::Rails::LogSubscriber

Public Class Methods

logger() click to toggle source
# File lib/sunspot/rails/log_subscriber.rb, line 21
def self.logger
  @logger if defined?(@logger)
end
logger=(logger) click to toggle source
# File lib/sunspot/rails/log_subscriber.rb, line 17
def self.logger=(logger)
  @logger = logger
end
reset_runtime() click to toggle source
# File lib/sunspot/rails/log_subscriber.rb, line 12
def self.reset_runtime
  rt, self.runtime = runtime, 0
  rt
end
runtime() click to toggle source
# File lib/sunspot/rails/log_subscriber.rb, line 8
def self.runtime
  Thread.current["sorl_runtime"] ||= 0
end
runtime=(value) click to toggle source
# File lib/sunspot/rails/log_subscriber.rb, line 4
def self.runtime=(value)
  Thread.current["sorl_runtime"] = value
end

Public Instance Methods

logger() click to toggle source
# File lib/sunspot/rails/log_subscriber.rb, line 25
def logger
  self.class.logger || ::Rails.logger
end
request(event) click to toggle source
# File lib/sunspot/rails/log_subscriber.rb, line 29
def request(event)
  self.class.runtime += event.duration
  return unless logger.debug?

  name = '%s (%.1fms)' % ["SOLR Request", event.duration]

  # produces: path=select parameters={fq: ["type:Tag"], q: "rossi", fl: "* score", qf: "tag_name_text", defType: "edismax", start: 0, rows: 20}
  path = color(event.payload[:path], BOLD, true)
  parameters = event.payload[:parameters].map { |k, v|
    v = "\"#{v}\"" if v.is_a? String
    v = v.to_s.gsub(/\\/,'') # unescape
    "#{k}: #{color(v, BOLD, true)}"
  }.join(', ')
  request = "path=#{path} parameters={#{parameters}}"

  debug "  #{color(name, GREEN, true)}  [ #{request} ]"
end