Class: Buzztools::MultiLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/buzztools/extras/logging.rb

Overview

The default level is DEBUG to pass all output to the sub-loggers, but the sub-loggers level will also determine what is output to their destinations

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aLoggers) ⇒ MultiLogger

if !self.instance_methods.include?(:formatter) def formatter @formatter ||= Logger::Formatter.new end attr_writer :formatter end



17
18
19
20
21
# File 'lib/buzztools/extras/logging.rb', line 17

def initialize(aLoggers)
  super(nil)
  @level = Severity::DEBUG
  @loggers = aLoggers.is_a?(Array) ? aLoggers : [aLoggers]
end

Instance Attribute Details

#loggersObject (readonly)

Returns the value of attribute loggers.



9
10
11
# File 'lib/buzztools/extras/logging.rb', line 9

def loggers
  @loggers
end

Instance Method Details

#<<(msg) ⇒ Object



34
35
36
37
38
# File 'lib/buzztools/extras/logging.rb', line 34

def <<(msg)
  @loggers.each do |lr|
    lr << msg
  end
end

#add(severity, message = nil, progname = nil, &block) ⇒ Object Also known as: log



23
24
25
26
27
28
29
30
# File 'lib/buzztools/extras/logging.rb', line 23

def add(severity, message = nil, progname = nil, &block)
  return true if !@loggers
  severity ||= UNKNOWN
  @loggers.each do |lr|
    block_given? ? lr.add(severity, message, progname, &block) : lr.add(severity, message, progname)
  end
  true
end

#closeObject



40
41
42
43
44
# File 'lib/buzztools/extras/logging.rb', line 40

def close
  @loggers.each do |lr|
    lr.close
  end
end