class Lorekeeper::MultiLogger
Allows to create a logger that will pass information to any logger registered It is useful so send the same message through different loggers to different sinks
Public Class Methods
new()
click to toggle source
# File lib/lorekeeper/multi_logger.rb, line 7 def initialize @loggers = [] end
Public Instance Methods
add_logger(logger)
click to toggle source
# File lib/lorekeeper/multi_logger.rb, line 11 def add_logger(logger) @loggers << logger end
inspect()
click to toggle source
# File lib/lorekeeper/multi_logger.rb, line 15 def inspect "Lorekeeper multilogger, loggers: #{@loggers.map(&:inspect)}" end
method_missing(method, *args, &block)
click to toggle source
# File lib/lorekeeper/multi_logger.rb, line 29 def method_missing(method, *args, &block) result = @loggers.map do |logger| logger.public_send(method, *args, &block) if logger.respond_to?(method) end # We call all the methods, delete nils and duplicates. # Then hope for the best taking the first value result.compact.uniq.first end
respond_to?(method, all_included = false)
click to toggle source
# File lib/lorekeeper/multi_logger.rb, line 20 def respond_to?(method, all_included = false) @loggers.all? { |logger| logger.respond_to?(method, all_included) } end