class LogstashScribbler::Message

Attributes

custom_fields[R]
error[R]
message[R]
object[R]

Public Class Methods

new(options) click to toggle source
# File lib/logstash_scribbler/message.rb, line 6
def initialize(options)
  @error = inspected_error(options[:error])
  @message = options[:message]
  @custom_fields = options[:custom_fields]
  @object = options[:object]
end

Public Instance Methods

data() click to toggle source
# File lib/logstash_scribbler/message.rb, line 17
def data
  log_msg = {
    :error => error,
    :message => message,
  }
  log_msg = custom_fields.merge!(log_msg) if custom_fields
  log_msg = namespaced_object.merge!(log_msg) if object
  log_msg.reject { |k, v| v.nil? }
end
inspected_error(error) click to toggle source
# File lib/logstash_scribbler/message.rb, line 33
def inspected_error(error)
  if error.is_a? Exception
    e = error
    error = {:message => e.message, :inspect => e.inspect, :backtrace => e.backtrace}
  else
    error
  end
end
is_active_record?(object) click to toggle source
# File lib/logstash_scribbler/message.rb, line 42
def is_active_record?(object)
  defined?(ActiveRecord::Base) && object.is_a?(ActiveRecord::Base)
end
log() click to toggle source
# File lib/logstash_scribbler/message.rb, line 13
def log
  LogStash::Event.new(data).to_json
end
namespaced_object() click to toggle source
# File lib/logstash_scribbler/message.rb, line 27
def namespaced_object
  return { :object => object } unless is_active_record?(object)
  object_type = object.class.name
  {object_type.to_sym => object}
end