Sha256: e3d7af04a8a342e62720665554783f3e5cf6b3b08266b09653ac3746deb52bfa
Contents?: true
Size: 1.65 KB
Versions: 13
Compression:
Stored size: 1.65 KB
Contents
module Sunspot module Rails module SolrLogging class <<self def included(base) base.module_eval { alias_method_chain(:request, :rails_logging) } end end def request_with_rails_logging(path, params={}, *extra) # Set up logging text. body = (params.nil? || params.empty?) ? extra.first : params.inspect action = path[1..-1].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 = request_without_rails_logging(path, params, *extra) 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 private def format_log_entry(message, dump = nil) if ActiveRecord::Base.colorize_logging message_color, dump_color = "4;32;1", "0;1" log_entry = " \e[#{message_color}m#{message}\e[0m " log_entry << "\e[#{dump_color}m%#{String === dump ? 's' : 'p'}\e[0m" % dump if dump log_entry else "%s %s" % [message, dump] end end end end end begin RSolr::Client.module_eval { include(Sunspot::Rails::SolrLogging) } rescue NameError # RSolr 0.9.6 RSolr::Connection::Base.module_eval { include(Sunspot::Rails::SolrLogging) } end
Version data entries
13 entries across 13 versions & 4 rubygems