semlogger/lib/semlogger/filter.rb

25 lines
446 B
Ruby
Raw Normal View History

2012-05-14 12:02:50 +02:00
class Semlogger::Filter
2012-05-14 11:52:45 +02:00
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
2012-05-14 12:02:50 +02:00
class ::Semlogger::F#{level.camelcase} < Semlogger::Filter
2012-05-14 11:52:45 +02:00
def initialize *a
2012-05-14 12:02:50 +02:00
super Semlogger::#{level.upcase}, *a
2012-05-14 11:52:45 +02:00
end
end
EOC
end