Sha256: 826f1f19ec5a9af0dd6fe6be6fabbdf7630e03ec4e7d4434e998e64056d86328
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
module GELF # Methods for compatibility with Ruby Logger. module LoggerCompatibility attr_accessor :formatter # Use it like Logger#add... or better not to use at all. def add(level, message = nil, progname = nil) progname ||= default_options['facility'] if message.nil? if block_given? message = yield else message = progname progname = default_options['facility'] end end message_hash = { 'facility' => progname } if message.is_a?(Hash) # Stringify keys. message.each do |key, value| message_hash[key.to_s] = value end else message_hash['short_message'] = message.to_s end if message.is_a?(Exception) message_hash.merge!(self.class.extract_hash_from_exception(message)) end notify_with_level(level, message_hash) end # Redefines methods in +Notifier+. GELF::Levels.constants.each do |const| method_name = const.downcase define_method(method_name) do |progname=nil, &block| const_level = GELF.const_get(const) add(const_level, nil, progname, &block) end define_method("#{method_name}?") do const_level = GELF.const_get(const) const_level >= level end end def <<(message) notify_with_level(GELF::UNKNOWN, 'short_message' => message) end end # Graylog2 notifier, compatible with Ruby Logger. # You can use it with Rails like this: # config.logger = GELF::Logger.new("localhost", 12201, "WAN", { :facility => "appname" }) # config.colorize_logging = false class Logger < Notifier include LoggerCompatibility end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gelf-3.0.0 | lib/gelf/logger.rb |