semlogger/lib/semlogger/filter.rb

25 lines
446 B
Ruby

class Semlogger::Filter
attr_accessor :level, :logdev
def initialize level, logdev
@level = level
@logdev = logdev
end
def call severity, *a
return true if @level > severity
@logdev.add severity, *a
end
alias add call
end
%w[debug info warn error fatal].each do |level|
eval <<-EOC
class ::Semlogger::F#{level.camelcase} < Semlogger::Filter
def initialize *a
super Semlogger::#{level.upcase}, *a
end
end
EOC
end