Class: Stackify::LoggerProxy
Instance Method Summary collapse
-
#initialize(logger) ⇒ LoggerProxy
constructor
A new instance of LoggerProxy.
Constructor Details
#initialize(logger) ⇒ LoggerProxy
Returns a new instance of LoggerProxy.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/stackify/logger_proxy.rb', line 4 def initialize logger @logger = logger @logger.level = Logger.const_get(Stackify.configuration.log_level.to_s.upcase) %w(debug info warn error fatal unknown).each do |level| stackify_logger = if level == 'debug' -> (msg, caller) { Stackify.logger_client.log(level.downcase, msg, caller) unless msg.to_s.empty? } else -> (msg, caller) { Stackify.logger_client.log(level.downcase, msg, caller) } end LoggerProxy.class_eval do define_method level.to_sym do |*args , &block| msg = (*args, &block) stackify_logger.call(msg, caller) @logger.send(level.to_sym, msg, &block) end end end end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object (protected)
25 26 27 |
# File 'lib/stackify/logger_proxy.rb', line 25 def method_missing(name, *args, &block) @logger.send(name, *args, &block) end |