Class: Madvertise::Logging::MultiLogger
- Inherits:
-
Object
- Object
- Madvertise::Logging::MultiLogger
- Defined in:
- lib/madvertise/logging/multi_logger.rb
Overview
MultiLogger is a simple class for multiplexing ImprovedLogger objects. It support attach/detach to send messages to any number of loggers.
Instance Method Summary collapse
-
#attach(logger) ⇒ Object
Attach an ImprovedLogger object.
-
#detach(logger) ⇒ Object
Detach an ImprovedLogger object.
-
#initialize(*loggers) ⇒ MultiLogger
constructor
A new instance of MultiLogger.
Constructor Details
#initialize(*loggers) ⇒ MultiLogger
Returns a new instance of MultiLogger.
9 10 11 |
# File 'lib/madvertise/logging/multi_logger.rb', line 9 def initialize(*loggers) @loggers = loggers end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
Delegate all method calls to all attached loggers.
27 28 29 30 31 |
# File 'lib/madvertise/logging/multi_logger.rb', line 27 def method_missing(name, *args, &block) @loggers.map do |logger| logger.send(name, *args, &block) end.first end |
Instance Method Details
#attach(logger) ⇒ Object
Attach an ImprovedLogger object.
14 15 16 17 |
# File 'lib/madvertise/logging/multi_logger.rb', line 14 def attach(logger) logger.token = @loggers.first.token rescue nil @loggers << logger end |
#detach(logger) ⇒ Object
Detach an ImprovedLogger object.
20 21 22 |
# File 'lib/madvertise/logging/multi_logger.rb', line 20 def detach(logger) @loggers.delete(logger) end |