Module: Sunspot::Rails::SolrLogging

Defined in:
lib/sunspot/rails/solr_logging.rb

Constant Summary collapse

COMMIT =
%r{<commit/>}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



6
7
8
# File 'lib/sunspot/rails/solr_logging.rb', line 6

def included(base)
  base.alias_method_chain :execute, :rails_logging
end

Instance Method Details

#execute_with_rails_logging(client, request_context) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/sunspot/rails/solr_logging.rb', line 13

def execute_with_rails_logging(client, request_context)
  body = (request_context[:data]||"").dup
  action = request_context[:path].capitalize
  if body =~ COMMIT
    action = "Commit"
    body = ""
  end
  body = body[0, 800] + '...' if body.length > 800

  # Make request and log.
  response = nil
  begin
    ms = Benchmark.ms do
      response = execute_without_rails_logging(client, request_context)
    end
    log_name = 'Solr %s (%.1fms)' % [action, ms]
    ::Rails.logger.debug(format_log_entry(log_name, body))
  rescue Exception => e
    log_name = 'Solr %s (Error)' % [action]
    ::Rails.logger.error(format_log_entry(log_name, body))
    raise e
  end

  response
end