semlogger/lib/slogger/filter.rb

25 lines
438 B
Ruby

class Slogger::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 ::Slogger::F#{level.camelcase} < Slogger::Filter
def initialize *a
super Slogger::#{level.upcase}, *a
end
end
EOC
end