View Javadoc

1   package ch.qos.logback.classic.filter;
2   
3   import ch.qos.logback.classic.Level;
4   import ch.qos.logback.classic.spi.LoggingEvent;
5   import ch.qos.logback.core.filter.AbstractMatcherFilter;
6   import ch.qos.logback.core.spi.FilterReply;
7   
8   /**
9    * A class that filters events depending on their level.
10   * 
11   * One can specify a level and the behaviour of the filter when 
12   * said level is encountered in a logging event.
13   *
14   * For more information about filters, please refer to the online manual at
15   * http://logback.qos.ch/manual/filters.html
16   * 
17   * @author Ceki Gülcü
18   * @author Sébastien Pennec
19   */
20  public class LevelFilter extends AbstractMatcherFilter {
21  
22    Level level;
23    
24    @Override
25    public FilterReply decide(Object eventObject) {
26      if (!isStarted()) {
27        return FilterReply.NEUTRAL;
28      }
29      
30      LoggingEvent event = (LoggingEvent)eventObject;
31      
32      if (event.getLevel().equals(level)) {
33        return onMatch;
34      } else {
35        return onMismatch;
36      }
37    }
38    
39    public void setLevel(String level) {
40      this.level = Level.toLevel(level);
41    }
42    
43    public void start() {
44      if (this.level != null) {
45        super.start();
46      }
47    }
48  }