class DynportTools::LogTracer
Constants
- FILTER_BACKTRACE
- LOGGER_METHODS
- REMOVE_COLOR
Public Class Methods
setup(logger)
click to toggle source
# File lib/dynport_tools/log_tracer.rb, line 6 def self.setup(logger) return if logger.respond_to?(:log_trace) logger.class.class_eval do LOGGER_METHODS.each do |meth| alias_method :"#{meth}_without_log_tracer", meth def register_tracer(re_or_messahge, &block) tracers[re_or_messahge] = block end def tracers @tracers ||= Hash.new end def log_trace(message) self.tracers.each do |re_or_string, block| filtered_backtrace = filter_backtrace(caller) if filtered_backtrace.any? && (re_or_string.is_a?(String) ? message.include?(re_or_string) : message.match(re_or_string)) block.call(message.gsub(REMOVE_COLOR, "").strip, filtered_backtrace) end end end def filter_backtrace(trace) trace.reject { |t| t.match(FILTER_BACKTRACE) } end eval <<-EOM, nil, __FILE__, __LINE__ + 1 def #{meth}(message = nil) log_trace(message) #{meth}_without_log_tracer(message) end EOM end end end
Public Instance Methods
filter_backtrace(trace)
click to toggle source
# File lib/dynport_tools/log_tracer.rb, line 29 def filter_backtrace(trace) trace.reject { |t| t.match(FILTER_BACKTRACE) } end
log_trace(message)
click to toggle source
# File lib/dynport_tools/log_tracer.rb, line 20 def log_trace(message) self.tracers.each do |re_or_string, block| filtered_backtrace = filter_backtrace(caller) if filtered_backtrace.any? && (re_or_string.is_a?(String) ? message.include?(re_or_string) : message.match(re_or_string)) block.call(message.gsub(REMOVE_COLOR, "").strip, filtered_backtrace) end end end
register_tracer(re_or_messahge, &block)
click to toggle source
# File lib/dynport_tools/log_tracer.rb, line 12 def register_tracer(re_or_messahge, &block) tracers[re_or_messahge] = block end
tracers()
click to toggle source
# File lib/dynport_tools/log_tracer.rb, line 16 def tracers @tracers ||= Hash.new end