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

Version Path
es-elasticity-1.3.0 lib/elasticity/log_subscriber.rb
es-elasticity-1.2.1 lib/elasticity/log_subscriber.rb
es-elasticity-1.1.0 lib/elasticity/log_subscriber.rb
es-elasticity-1.0.1 lib/elasticity/log_subscriber.rb
es-elasticity-0.14.1 lib/elasticity/log_subscriber.rb
es-elasticity-0.14.0 lib/elasticity/log_subscriber.rb
es-elasticity-0.14.0.jhumphreys lib/elasticity/log_subscriber.rb
es-elasticity-0.13.5 lib/elasticity/log_subscriber.rb
es-elasticity-0.13.5.dblackmon.1 lib/elasticity/log_subscriber.rb
es-elasticity-0.13.4 lib/elasticity/log_subscriber.rb
es-elasticity-0.13.4.zpesic lib/elasticity/log_subscriber.rb
es-elasticity-0.13.4.dblackmon.1 lib/elasticity/log_subscriber.rb
es-elasticity-0.13.4.dblackmon.0 lib/elasticity/log_subscriber.rb
es-elasticity-0.13.4.dblackmon lib/elasticity/log_subscriber.rb
es-elasticity-0.13.3 lib/elasticity/log_subscriber.rb
es-elasticity-0.13.3.pre1 lib/elasticity/log_subscriber.rb
es-elasticity-0.12.0 lib/elasticity/log_subscriber.rb
es-elasticity-0.11.5 lib/elasticity/log_subscriber.rb
es-elasticity-0.11.1 lib/elasticity/log_subscriber.rb
es-elasticity-0.9.0 lib/elasticity/log_subscriber.rb