Class: Logging::Filters::Level

Inherits:
Logging::Filter show all
Defined in:
lib/logging/filters/level.rb

Overview

The Level filter class provides a simple level-based filtering mechanism that allows events whose log level matches a preconfigured list of values.

Instance Method Summary collapse

Constructor Details

#initialize(*levels) ⇒ Level

Creates a new level filter that will only allow the given levels to propagate through to the logging destination. The levels should be given in symbolic form.

Examples

Logging::Filters::Level.new(:debug, :info)


17
18
19
20
21
# File 'lib/logging/filters/level.rb', line 17

def initialize(*levels)
  super()
  levels  = levels.flatten.map {|level| ::Logging::level_num(level)}
  @levels = Set.new(levels)
end

Instance Method Details

#allow(event) ⇒ Object

Returns the event if it should be forwarded to the logging appender. Otherwise, nil is returned. The log event is allowed if the event.level matches one of the levels provided to the filter when it was constructred.



27
28
29
# File 'lib/logging/filters/level.rb', line 27

def allow(event)
  @levels.include?(event.level) ? event : nil
end