Class: Lorekeeper::MultiLogger
- Inherits:
-
Object
- Object
- Lorekeeper::MultiLogger
show all
- Defined in:
- lib/lorekeeper/multi_logger.rb
Overview
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
Instance Method Summary
collapse
Constructor Details
Returns a new instance of MultiLogger.
7
8
9
|
# File 'lib/lorekeeper/multi_logger.rb', line 7
def initialize
@loggers = []
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
29
30
31
32
33
34
35
36
|
# 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
result.compact.uniq.first
end
|
Instance Method Details
#add_logger(logger) ⇒ Object
11
12
13
|
# File 'lib/lorekeeper/multi_logger.rb', line 11
def add_logger(logger)
@loggers << logger
end
|
#inspect ⇒ Object
15
16
17
|
# File 'lib/lorekeeper/multi_logger.rb', line 15
def inspect
"Lorekeeper multilogger, loggers: #{@loggers.map(&:inspect)}"
end
|
#respond_to?(method) ⇒ Boolean
20
21
22
|
# 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
|