class LogStasher::ActiveRecord::LogSubscriber

Public Instance Methods

identity(event) click to toggle source
# File lib/logstasher/active_record/log_subscriber.rb, line 7
def identity(event)
  lsevent = logstash_event(event)
  if logger && lsevent
    logger << lsevent.to_json + "\n"
  end
end
Also aliased as: sql
logger() click to toggle source
# File lib/logstasher/active_record/log_subscriber.rb, line 15
def logger
  LogStasher.logger
end
sql(event)
Alias for: identity

Private Instance Methods

extract_custom_fields(data) click to toggle source
# File lib/logstasher/active_record/log_subscriber.rb, line 53
def extract_custom_fields(data)
  custom_fields = (!LogStasher.custom_fields.empty? && data.extract!(*LogStasher.custom_fields)) || {}
  LogStasher.custom_fields.clear
  custom_fields
end
extract_sql(data) click to toggle source
# File lib/logstasher/active_record/log_subscriber.rb, line 49
def extract_sql(data)
  { sql: data[:sql].squeeze(' ') }
end
logstash_event(event) click to toggle source
# File lib/logstasher/active_record/log_subscriber.rb, line 21
def logstash_event(event)
  data = event.payload

  return unless logger.debug?
  return if 'SCHEMA' == data[:name]

  data.merge! runtimes(event)
  data.merge! extract_sql(data)
  data.merge! request_context
  data.merge! extract_custom_fields(data)

  tags = [ 'request' ]
  tags.push('exception') if data[:exception]
  LogStasher.build_logstash_event(data, tags)
end
request_context() click to toggle source
# File lib/logstasher/active_record/log_subscriber.rb, line 37
def request_context
  LogStasher.request_context
end
runtimes(event) click to toggle source
# File lib/logstasher/active_record/log_subscriber.rb, line 41
def runtimes(event)
  if event.duration
    { duration: event.duration.to_f.round(2) }
  else
    {  }
  end
end