Sha256: 82bc446761d81e87aa0ee2de58decfca7c31e2ef8137efa085183e76c8d4065f
Contents?: true
Size: 1.27 KB
Versions: 39
Compression:
Stored size: 1.27 KB
Contents
require "active_support/subscriber" require "active_support/log_subscriber" module Elasticity GRAY = "\e[90m" class LogSubscriber < ::ActiveSupport::LogSubscriber InstrumentedClient::INDICES_METHODS.each do |method_name| define_method("index_#{method_name}") do |event| log_event(event) end end InstrumentedClient::INDEX_METHODS.each do |method_name| define_method(method_name) do |event| log_event(event) end end def multi_search(event) log_event(event) end private def log_event(event) bt = event.payload[:backtrace] if bt.present? && defined?(Rails) bt = Rails.backtrace_cleaner.clean(bt) end message = "#{event.transaction_id} #{event.name} #{"%.2f" % event.duration}ms #{MultiJson.dump(event.payload[:args], pretty: Elasticity.config.pretty_json)}" if bt = event.payload[:backtrace] bt = Rails.backtrace_cleaner.clean(bt) if defined?(Rails) lines = bt[0,4].map { |l| color(l, GRAY) }.join("\n") message << "\n#{lines}" end debug(message) exception, message = event.payload[:exception] if exception error("#{event.transaction_id} #{event.name} ERROR #{exception}: #{message}") end end end end
Version data entries
39 entries across 39 versions & 1 rubygems