
Author: seb Date: Thu Dec 21 11:53:05 2006 New Revision: 1144 Added: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/filter/ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/filter/LevelFilter.java Log: Added a LevelFilter that works much like the appender threshold in log4j It returns the ACCEPT value for events whose level is equal or greater to the user provided level, and DENY otherwise. Added: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/filter/LevelFilter.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/filter/LevelFilter.java Thu Dec 21 11:53:05 2006 @@ -0,0 +1,36 @@ +package ch.qos.logback.classic.filter; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.spi.LoggingEvent; +import ch.qos.logback.core.filter.Filter; +import ch.qos.logback.core.spi.FilterReply; + +public class LevelFilter extends Filter { + + Level level; + + @Override + public FilterReply decide(Object eventObject) { + if (!isStarted()) { + return FilterReply.NEUTRAL; + } + + LoggingEvent event = (LoggingEvent)eventObject; + + if (event.getLevel().isGreaterOrEqual(level)) { + return FilterReply.ACCEPT; + } else { + return FilterReply.DENY; + } + } + + public void setLevel(String level) { + this.level = Level.toLevel(level); + } + + public void start() { + if (this.level != null) { + super.start(); + } + } +}