module Bio::Log::LoggerFilter

The filter logger changes behaviour

Public Instance Methods

filter(&filter_func) click to toggle source
# File lib/bio/log/loggerfilter.rb, line 8
def filter &filter_func
  @use_filter = filter_func
  @outputters.each do | out | 
    # p [:adding_filter_to,out]
    out.class.send(:define_method, :filtered?) do |l,s,m|
      # p [:called,l,s,m]
      filter_func.call(l,s,m)
    end
    raise 'hell' if !out.class.method_defined?(:filtered?)
  end
  @level = default_level  # will recreate logger methods
  @sub_level = default_sub_level
end
reset_filter() click to toggle source
# File lib/bio/log/loggerfilter.rb, line 22
def reset_filter
  @use_filter = nil
  @outputters.each do | out | 
    if out.class.method_defined?(:filtered?)
      out.class.send(:remove_method, :filtered?)
    end
  end
  @level = default_level  # will recreate logger methods
  @sub_level = default_sub_level
end