25 lines
446 B
Ruby
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
|