Sha256: ece12f69a33525940dda4055daedabfd2ebd5f3e949717bc324ad178689c8721
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
module Stackify class LoggerProxy < Object 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 def method_missing(name, *args, **kwargs, &block) @logger.send(name, *args, **kwargs, &block) end def respond_to_missing?(*args, **kwargs, &block) @logger.respond_to?(*args, **kwargs, &block) end private 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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stackify-api-ruby-2.1.0 | lib/stackify/logger_proxy.rb |
stackify-api-ruby-2.1.0.beta1 | lib/stackify/logger_proxy.rb |