Class: Facter::MultiLogger
- Inherits:
-
Logger
- Object
- Logger
- Facter::MultiLogger
- Defined in:
- lib/framework/logging/multilogger.rb
Overview
MultiLogger is an implementation of Ruby logging which can tee the log to multiple endpoints. This class reeks of :reek:TooManyMethods.
Instance Attribute Summary collapse
-
#loggers ⇒ Object
readonly
Array of loggers to be logged to.
Instance Method Summary collapse
-
#add(severity, message = nil, progname = nil, &block) ⇒ Object
(also: #log)
Methods that write to logs just write to each contained logging in turn.
- #add_logger(logger) ⇒ Object
- #close ⇒ Object
-
#datetime_format ⇒ Object
Returns the date format being used.
-
#datetime_format=(datetime_format) ⇒ Object
Set date-time format.
- #debug(progname = nil, &block) ⇒ Object
-
#debug? ⇒ Boolean
Returns
true
if the current severity level allows for the printing ofDEBUG
messages. - #error(progname = nil, &block) ⇒ Object
-
#error? ⇒ Boolean
Returns
true
iff the current severity level allows for the printing ofERROR
messages. - #info(progname = nil, &block) ⇒ Object
-
#info? ⇒ Boolean
Returns
true
iff the current severity level allows for the printing ofINFO
messages. -
#initialize(loggers) ⇒ MultiLogger
constructor
Synopsis.
-
#level ⇒ Object
Logging severity threshold (e.g.
Logger::INFO
). - #level=(value) ⇒ Object
-
#progname ⇒ Object
Program name to include in log messages.
- #progname=(value) ⇒ Object
- #warn(progname = nil, &block) ⇒ Object
-
#warn? ⇒ Boolean
Returns
true
iff the current severity level allows for the printing ofWARN
messages.
Constructor Details
#initialize(loggers) ⇒ MultiLogger
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.
85 86 87 |
# File 'lib/framework/logging/multilogger.rb', line 85 def initialize(loggers) @loggers = loggers end |
Instance Attribute Details
#loggers ⇒ Object (readonly)
Array of loggers to be logged to. These can be anything that acts reasonably like a Logger.
11 12 13 |
# File 'lib/framework/logging/multilogger.rb', line 11 def loggers @loggers end |
Instance Method Details
#add(severity, message = nil, progname = nil, &block) ⇒ Object Also known as: log
Methods that write to logs just write to each contained logging in turn
94 95 96 |
# File 'lib/framework/logging/multilogger.rb', line 94 def add(severity, = nil, progname = nil, &block) loggers.each { |logger| logger.add(severity, , progname, &block) } end |
#add_logger(logger) ⇒ Object
89 90 91 |
# File 'lib/framework/logging/multilogger.rb', line 89 def add_logger(logger) @loggers << logger end |
#close ⇒ Object
115 116 117 |
# File 'lib/framework/logging/multilogger.rb', line 115 def close loggers.each(&:close) end |
#datetime_format ⇒ Object
Returns the date format being used. See #datetime_format=
42 43 44 |
# File 'lib/framework/logging/multilogger.rb', line 42 def datetime_format loggers.first.datetime_format end |
#datetime_format=(datetime_format) ⇒ Object
Set date-time format.
datetime_format
-
A string suitable for passing to
strftime
.
37 38 39 |
# File 'lib/framework/logging/multilogger.rb', line 37 def datetime_format=(datetime_format) loggers.each { |logger| logger.datetime_format = datetime_format } end |
#debug(progname = nil, &block) ⇒ Object
99 100 101 |
# File 'lib/framework/logging/multilogger.rb', line 99 def debug(progname = nil, &block) loggers.each { |logger| logger.debug(progname, &block) } end |
#debug? ⇒ Boolean
Returns true
if the current severity level allows for the printing of DEBUG
messages.
48 49 50 |
# File 'lib/framework/logging/multilogger.rb', line 48 def debug? loggers.first.level <= DEBUG end |
#error(progname = nil, &block) ⇒ Object
111 112 113 |
# File 'lib/framework/logging/multilogger.rb', line 111 def error(progname = nil, &block) loggers.each { |logger| logger.error(progname, &block) } end |
#error? ⇒ Boolean
Returns true
iff the current severity level allows for the printing of ERROR
messages.
66 67 68 |
# File 'lib/framework/logging/multilogger.rb', line 66 def error? loggers.first.level <= ERROR end |
#info(progname = nil, &block) ⇒ Object
103 104 105 |
# File 'lib/framework/logging/multilogger.rb', line 103 def info(progname = nil, &block) loggers.each { |logger| logger.info(progname, &block) } end |
#info? ⇒ Boolean
Returns true
iff the current severity level allows for the printing of INFO
messages.
54 55 56 |
# File 'lib/framework/logging/multilogger.rb', line 54 def info? loggers.first.level <= INFO end |
#level ⇒ Object
Logging severity threshold (e.g. Logger::INFO
).
18 19 20 |
# File 'lib/framework/logging/multilogger.rb', line 18 def level loggers.first.level end |
#level=(value) ⇒ Object
22 23 24 |
# File 'lib/framework/logging/multilogger.rb', line 22 def level=(value) loggers.each { |logger| logger.level = value } end |
#progname ⇒ Object
Program name to include in log messages.
27 28 29 |
# File 'lib/framework/logging/multilogger.rb', line 27 def progname loggers.first.progname end |
#progname=(value) ⇒ Object
31 32 33 |
# File 'lib/framework/logging/multilogger.rb', line 31 def progname=(value) loggers.each { |logger| logger.progname = value } end |
#warn(progname = nil, &block) ⇒ Object
107 108 109 |
# File 'lib/framework/logging/multilogger.rb', line 107 def warn(progname = nil, &block) loggers.each { |logger| logger.warn(progname, &block) } end |
#warn? ⇒ Boolean
Returns true
iff the current severity level allows for the printing of WARN
messages.
60 61 62 |
# File 'lib/framework/logging/multilogger.rb', line 60 def warn? loggers.first.level <= WARN end |