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