Class: Stackify::LoggerProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/stackify/logger_proxy.rb

Instance Method Summary collapse

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 = message(*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