Sha256: e274165e7f75801d6870c50677afdb953bef455e556c12a9d9fa0ae9eaadc481

Contents?: true

Size: 780 Bytes

Versions: 3

Compression:

Stored size: 780 Bytes

Contents

module Stackify
  class LoggerProxy < Object

    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|
        LoggerProxy.class_eval do
          define_method level.to_sym do |*args , &block|
            msg = message(args, block)
            Stackify.logger_client.log(level.downcase, msg)
            @logger.send(level.to_sym, args, &block)
          end
        end
      end
    end

    protected

    def method_missing(name, *args, &block)
      @logger.send(name, *args, &block)
    end

    private

    def message *args, &block
      if block
        block.call
      else
        args.flatten[0]
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
stackify-api-ruby-1.0.3 lib/stackify/logger_proxy.rb
stackify-api-ruby-1.0.2 lib/stackify/logger_proxy.rb
stackify-api-ruby-1.0.1 lib/stackify/logger_proxy.rb