class Semlog::GelflogAppender

Constants

LEVEL_MAP

Map Semantic Logger levels to Graylog levels

Attributes

notifier[R]

Public Class Methods

new(options = {}, &block) click to toggle source
Calls superclass method
# File lib/semlog/gelflog_appender.rb, line 19
def initialize(options = {}, &block)
  options = options.dup

  @rabbit_host=options.delete(:host)|| 'localhost'
  @port=options.delete(:port)|| 5672
  @vhost=options.delete(:vhost)||''
  @exchange=options.delete(:exchange)|| ''
  @user=options.delete(:user)||''
  @pw=options.delete(:pw)||''
  @app_name = options.delete(:application) || 'Semlog'

  super(options, &block)
  self.application = @app_name

  reopen
end

Public Instance Methods

log(log) click to toggle source

Forward log messages

# File lib/semlog/gelflog_appender.rb, line 50
def log(log)
  return false unless should_log?(log)

  begin
    @notifier.notify!(make_hash(log))
  rescue => e
    $logger.error "Semlog::Appender::GelflogAppender >EXCEPTION> #{e}"
  end

  true
end
make_hash(log) click to toggle source
# File lib/semlog/gelflog_appender.rb, line 40
def make_hash(log)
  h = log.to_h(host, application)
  h[:level] = map_level(log)
  h[:level_str] = log.level.to_s
  h[:short_message] = h.delete(:message) if log.message && !h.key?("short_message") && !h.key?(:short_message)
  h[:request_uid] = h.delete(:tags).first if log.tags && log.tags.count > 0
  h
end
map_level(log) click to toggle source

Returns the Graylog level for the supplied log message

# File lib/semlog/gelflog_appender.rb, line 63
def map_level(log)
  LEVEL_MAP[log.level]
end
reopen() click to toggle source
# File lib/semlog/gelflog_appender.rb, line 36
def reopen
  @notifier = RabbitNotifier.new(host: @rabbit_host, port: @port, vhost: @vhost, exchange_name: @exchange, user: @user, pw: @pw)
end