Class: Rackstash::LogSubscriber

Inherits:
ActiveSupport::LogSubscriber
  • Object
show all
Defined in:
lib/rackstash/log_subscriber.rb

Instance Method Summary collapse

Instance Method Details

#_extract_exception_backtrace(env) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/rackstash/log_subscriber.rb', line 23

def _extract_exception_backtrace(env)
  return unless env['action_dispatch.exception']

  exception_wrapper = ActionDispatch::ExceptionWrapper.new(env, env['action_dispatch.exception'])
  data = {
    :error_backtrace => exception_wrapper.full_trace.join("\n")
  }
  Rails.logger.fields.reverse_merge!(data)
end

#process_action(event) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/rackstash/log_subscriber.rb', line 6

def process_action(event)
  return unless Rails.logger.respond_to?(:fields) && Rails.logger.fields
  payload = event.payload

  data      = extract_request(payload)
  data.merge! extract_exception(payload)
  data.merge! runtimes(event)
  data.merge! location(event)

  Rails.logger.fields.reverse_merge!(data)
  Rails.logger.fields.merge! request_fields(payload)
end

#redirect_to(event) ⇒ Object



19
20
21
# File 'lib/rackstash/log_subscriber.rb', line 19

def redirect_to(event)
  Thread.current[:rackstash_location] = event.payload[:location]
end