class Stackify::LoggerProxy

Public Class Methods

new(logger) click to toggle source
# File lib/stackify/logger_proxy.rb, line 5
def initialize logger
  rails_logger  = logger
  num_level     = logger.level
  @logger       = rails_logger
  %w(debug info warn error fatal unknown).each do |level|
    stackify_logger = if level == 'debug'
      -> (msg, caller) { Stackify.logger_client.log(num_level, level.downcase, msg, caller) unless msg.to_s.empty? }
    else
      -> (msg, caller) { Stackify.logger_client.log(num_level, 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

Protected Instance Methods

method_missing(name, *args, &block) click to toggle source
# File lib/stackify/logger_proxy.rb, line 27
def method_missing(name, *args, &block)
  @logger.send(name, *args, &block)
end

Private Instance Methods

message(*args, &block) click to toggle source
# File lib/stackify/logger_proxy.rb, line 33
def message *args, &block
  if block_given?
    block.call
  else
    args = args.flatten.compact
    args = (args.count == 1 ? args[0] : args)
    args.is_a?(Proc) ? args.call : args
  end
end