class RailsGraylogger::Logger
Constants
- FIELD_KEY_REGEXP
Public Class Methods
initialize_log_buffer()
click to toggle source
# File lib/rails-graylogger/logger.rb, line 10 def initialize_log_buffer RequestStore.store[:graylog2_buffer] = [] end
new(logger)
click to toggle source
# File lib/rails-graylogger/logger.rb, line 5 def initialize(logger) @logger = logger end
request_buffer()
click to toggle source
# File lib/rails-graylogger/logger.rb, line 18 def request_buffer RequestStore.store[:graylog2_buffer] end
Public Instance Methods
tagged(*new_tags, &block)
click to toggle source
# File lib/rails-graylogger/logger.rb, line 23 def tagged(*new_tags, &block) new_tags = Array.wrap(new_tags).flatten.reject(&:blank?) self.class.request_tags << new_tags - ( self.class.request_tags & new_tags ) @logger.send("tagged", *new_tags, &block) end
Private Instance Methods
method_missing(method, *args, &block)
click to toggle source
# File lib/rails-graylogger/logger.rb, line 31 def method_missing(method, *args, &block) if [:info, :debug, :warn, :error, :fatal].include?(method) && !args[0].nil? if args.size == 1 && args[0].is_a?(String) hash = { short_message: args[0] } else return if args.blank? hash = { short_message: args.compact.map(&:to_s).join("\n") } end unless self.class.request_buffer.nil? self.class.request_buffer << hash else notify!(method, hash) end end @logger.send(method, *args, &block) end
notify!(method, payload)
click to toggle source
# File lib/rails-graylogger/logger.rb, line 49 def notify!(method, payload) message = RailsGraylogger::Message.new({ level: "GELF::Levels::#{method.upcase}".constantize, short_message: payload.delete(:short_message) }) message.process_extra_fields(payload) message.tags = self.class.request_tags unless self.class.request_tags.blank? RailsGraylogger::Notifier.notify!(message.to_hash) end