Sha256: 4833b2da6d05acd920f4115ad54473b9062a02fb84c513b1cf404fd2b5fa6bd6

Contents?: true

Size: 987 Bytes

Versions: 1

Compression:

Stored size: 987 Bytes

Contents

module Spyke
  module Instrumentation
    class LogSubscriber < ActiveSupport::LogSubscriber
      def self.runtime=(value)
        Thread.current['spyke_request_runtime'] = value
      end

      def self.runtime
        Thread.current['spyke_request_runtime'] ||= 0
      end

      def self.reset_runtime
        rt, self.runtime = runtime, 0
        rt
      end

      def request(event)
        return unless logger.debug?
        self.class.runtime += event.duration
        name = '%s (%.1fms)' % ["Spyke", event.duration]
        details = "#{event.payload[:method].upcase} #{event.payload[:url]} [#{event.payload[:status]}]"
        debug "  #{color(name, GREEN, backwards_compatible_bold)}  #{color(details, nil, backwards_compatible_bold)}"
      end

      private

        def backwards_compatible_bold
          if ActiveSupport.gem_version < Gem::Version.new("7.1.0")
            true
          else
            { bold: true }
          end
        end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spyke-7.2.2 lib/spyke/instrumentation/log_subscriber.rb