Sha256: 88c515021024a04f5e73ca34752618a49ec3fa286c9d326a7c33a942f7a3e953

Contents?: true

Size: 822 Bytes

Versions: 77

Compression:

Stored size: 822 Bytes

Contents

module RailsOps
  # This class subscribes to Rails Ops events via the ActiveSupport
  # instrumentation API.
  class LogSubscriber < ActiveSupport::LogSubscriber
    # This gets called whenever an operation has been performed and logs the
    # operation via Rails' `debug` logging method.
    def run(event)
      op = event.payload[:operation]

      return if op.class.logging_skipped?

      profile = ::RailsOps::Profiler.node(op.object_id)

      message = 'OP'
      message += ' FAILED' if profile.erroneous?
      message += " (#{profile.t_self_ms.round(1)}ms / #{profile.t_kids_ms.round(1)}ms)"
      profile.free

      color = profile.erroneous? ? RED : YELLOW

      message = color(message, color, true)
      message += color(" #{op.class.name}", color, false)

      debug "  #{message}"
    end
  end
end

Version data entries

77 entries across 77 versions & 1 rubygems

Version Path
rails_ops-1.4.8 lib/rails_ops/log_subscriber.rb
rails_ops-1.4.7 lib/rails_ops/log_subscriber.rb
rails_ops-1.4.6 lib/rails_ops/log_subscriber.rb
rails_ops-1.4.5 lib/rails_ops/log_subscriber.rb
rails_ops-1.4.4 lib/rails_ops/log_subscriber.rb
rails_ops-1.4.3 lib/rails_ops/log_subscriber.rb
rails_ops-1.4.2 lib/rails_ops/log_subscriber.rb
rails_ops-1.0.17.1 lib/rails_ops/log_subscriber.rb
rails_ops-1.4.1 lib/rails_ops/log_subscriber.rb
rails_ops-1.4.0 lib/rails_ops/log_subscriber.rb
rails_ops-1.3.0 lib/rails_ops/log_subscriber.rb
rails_ops-1.2.3 lib/rails_ops/log_subscriber.rb
rails_ops-1.2.2 lib/rails_ops/log_subscriber.rb
rails_ops-1.2.1 lib/rails_ops/log_subscriber.rb
rails_ops-1.2.0 lib/rails_ops/log_subscriber.rb
rails_ops-1.1.31 lib/rails_ops/log_subscriber.rb
rails_ops-1.1.30 lib/rails_ops/log_subscriber.rb
rails_ops-1.1.29 lib/rails_ops/log_subscriber.rb
rails_ops-1.1.28 lib/rails_ops/log_subscriber.rb
rails_ops-1.1.27 lib/rails_ops/log_subscriber.rb