class LogStashLogger::MultiLogger
Attributes
loggers[RW]
Array of Loggers to be logged to. These can be anything that acts reasonably like a Logger.
Public Class Methods
new(loggers)
click to toggle source
Synopsis¶ ↑
MultiLogger.new([logger1, logger2])
Args¶ ↑
loggers
-
An array of loggers. Each one gets every message that is sent to the
MultiLogger
instance
Description¶ ↑
Create an instance.
Calls superclass method
# File lib/logstash-logger/multi_logger.rb, line 92 def initialize(loggers) @loggers = [] super(nil) @loggers = Array(loggers) end
Public Instance Methods
<<(msg)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 105 def <<(msg) @loggers.each do |logger| logger << msg end end
add(severity, message = nil, progname = nil, &block)
click to toggle source
Methods that write to logs just write to each contained logger in turn
# File lib/logstash-logger/multi_logger.rb, line 99 def add(severity, message = nil, progname = nil, &block) @loggers.each do |logger| logger.add(severity, message, progname, &block) end end
close()
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 147 def close @loggers.each do |logger| logger.close if logger.respond_to?(:close) end end
datetime_format=(datetime_format)
click to toggle source
Calls superclass method
# File lib/logstash-logger/multi_logger.rb, line 21 def datetime_format=(datetime_format) super @loggers.each do |logger| logger.datetime_format = datetime_format end end
debug(progname = nil, &block)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 111 def debug(progname = nil, &block) @loggers.each do |logger| logger.debug(progname, &block) end end
error(progname = nil, &block)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 129 def error(progname = nil, &block) @loggers.each do |logger| logger.error(progname, &block) end end
fatal(progname = nil, &block)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 135 def fatal(progname = nil, &block) @loggers.each do |logger| logger.fatal(progname, &block) end end
formatter=(formatter)
click to toggle source
Calls superclass method
# File lib/logstash-logger/multi_logger.rb, line 28 def formatter=(formatter) super @loggers.each do |logger| logger.formatter ||= formatter end end
info(progname = nil, &block)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 117 def info(progname = nil, &block) @loggers.each do |logger| logger.info(progname, &block) end end
level=(value)
click to toggle source
Calls superclass method
# File lib/logstash-logger/multi_logger.rb, line 7 def level=(value) super @loggers.each do |logger| logger.level = value end end
method_missing(name, *args, &block)
click to toggle source
Any method not defined on standard Logger class, just send it on to anyone who will listen
# File lib/logstash-logger/multi_logger.rb, line 70 def method_missing(name, *args, &block) @loggers.each do |logger| if logger.respond_to?(name) logger.send(name, args, &block) end end end
progname=(value)
click to toggle source
Calls superclass method
# File lib/logstash-logger/multi_logger.rb, line 14 def progname=(value) super @loggers.each do |logger| logger.progname = value end end
silence(temporary_level = ::Logger::ERROR, &block)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 35 def silence(temporary_level = ::Logger::ERROR, &block) silenceable_loggers = @loggers.select do |logger| logger.respond_to?(:silence) end silence_loggers(temporary_level, silenceable_loggers, &block) end
tagged(*tags, &block)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 52 def tagged(*tags, &block) taggable_loggers = @loggers.select do |logger| logger.respond_to?(:tagged) end tag_loggers(tags, taggable_loggers, &block) end
unknown(progname = nil, &block)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 141 def unknown(progname = nil, &block) @loggers.each do |logger| logger.unknown(progname, &block) end end
warn(progname = nil, &block)
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 123 def warn(progname = nil, &block) @loggers.each do |logger| logger.warn(progname, &block) end end
Private Instance Methods
silence_loggers(temporary_level = ::Logger::ERROR, silenceable_loggers) { |self| ... }
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 43 def silence_loggers(temporary_level = ::Logger::ERROR, silenceable_loggers, &block) return yield(self) if silenceable_loggers.empty? silenceable_loggers.shift.silence(temporary_level) do silence_loggers(temporary_level, silenceable_loggers, &block) end end
tag_loggers(tags, taggable_loggers) { |self| ... }
click to toggle source
# File lib/logstash-logger/multi_logger.rb, line 60 def tag_loggers(tags, taggable_loggers, &block) return yield(self) if taggable_loggers.empty? taggable_loggers.shift.tagged(*tags) do tag_loggers(tags, taggable_loggers, &block) end end