[jboss-svn-commits] JBoss Common SVN: r3319 - in jboss-logmanager/trunk/src: test/java/org/jboss/logmanager and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 29 18:58:37 EDT 2009
Author: david.lloyd at jboss.com
Date: 2009-06-29 18:58:37 -0400 (Mon, 29 Jun 2009)
New Revision: 3319
Modified:
jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/filters/LevelRangeFilter.java
jboss-logmanager/trunk/src/test/java/org/jboss/logmanager/FilterTests.java
Log:
Let level range be inclusive or exclusive on either end
Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/filters/LevelRangeFilter.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/filters/LevelRangeFilter.java 2009-06-29 22:51:22 UTC (rev 3318)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/filters/LevelRangeFilter.java 2009-06-29 22:58:37 UTC (rev 3319)
@@ -32,14 +32,20 @@
public final class LevelRangeFilter implements Filter {
private final int min;
private final int max;
+ private final boolean minInclusive;
+ private final boolean maxInclusive;
/**
* Create a new instance.
*
* @param min the minimum (least severe) level, inclusive
+ * @param minInclusive {@code true} if the {@code min} value is inclusive, {@code false} if it is exclusive
* @param max the maximum (most severe) level, inclusive
+ * @param maxInclusive {@code true} if the {@code max} value is inclusive, {@code false} if it is exclusive
*/
- public LevelRangeFilter(final Level min, final Level max) {
+ public LevelRangeFilter(final Level min, final boolean minInclusive, final Level max, final boolean maxInclusive) {
+ this.minInclusive = minInclusive;
+ this.maxInclusive = maxInclusive;
this.min = min.intValue();
this.max = max.intValue();
if (this.max < this.min) {
@@ -55,6 +61,6 @@
*/
public boolean isLoggable(final LogRecord record) {
final int iv = record.getLevel().intValue();
- return min <= iv && iv <= max;
+ return (minInclusive ? min <= iv : min < iv) && (maxInclusive ? iv <= max : iv < max);
}
}
Modified: jboss-logmanager/trunk/src/test/java/org/jboss/logmanager/FilterTests.java
===================================================================
--- jboss-logmanager/trunk/src/test/java/org/jboss/logmanager/FilterTests.java 2009-06-29 22:51:22 UTC (rev 3318)
+++ jboss-logmanager/trunk/src/test/java/org/jboss/logmanager/FilterTests.java 2009-06-29 22:58:37 UTC (rev 3319)
@@ -300,7 +300,7 @@
}
public void testLevelRangeFilter0() {
- final Filter filter = new LevelRangeFilter(Level.DEBUG, Level.WARN);
+ final Filter filter = new LevelRangeFilter(Level.DEBUG, true, Level.WARN, true);
final AtomicBoolean ran = new AtomicBoolean();
final Handler handler = new CheckingHandler(ran);
final Logger logger = Logger.getLogger("filterTest");
@@ -314,7 +314,7 @@
}
public void testLevelRangeFilter1() {
- final Filter filter = new LevelRangeFilter(Level.DEBUG, Level.WARN);
+ final Filter filter = new LevelRangeFilter(Level.DEBUG, true, Level.WARN, true);
final AtomicBoolean ran = new AtomicBoolean();
final Handler handler = new CheckingHandler(ran);
final Logger logger = Logger.getLogger("filterTest");
@@ -327,6 +327,48 @@
assertFalse("Handler was run", ran.get());
}
+ public void testLevelRangeFilter2() {
+ final Filter filter = new LevelRangeFilter(Level.DEBUG, true, Level.WARN, true);
+ final AtomicBoolean ran = new AtomicBoolean();
+ final Handler handler = new CheckingHandler(ran);
+ final Logger logger = Logger.getLogger("filterTest");
+ logger.setUseParentHandlers(false);
+ logger.addHandler(handler);
+ logger.setLevel(Level.DEBUG);
+ logger.setFilter(filter);
+ handler.setLevel(Level.DEBUG);
+ logger.log(Level.DEBUG, "This is a test.");
+ assertTrue("Handler wasn't run", ran.get());
+ }
+
+ public void testLevelRangeFilter3() {
+ final Filter filter = new LevelRangeFilter(Level.DEBUG, false, Level.WARN, true);
+ final AtomicBoolean ran = new AtomicBoolean();
+ final Handler handler = new CheckingHandler(ran);
+ final Logger logger = Logger.getLogger("filterTest");
+ logger.setUseParentHandlers(false);
+ logger.addHandler(handler);
+ logger.setLevel(Level.DEBUG);
+ logger.setFilter(filter);
+ handler.setLevel(Level.DEBUG);
+ logger.log(Level.DEBUG, "This is a test.");
+ assertFalse("Handler was run", ran.get());
+ }
+
+ public void testLevelRangeFilter4() {
+ final Filter filter = new LevelRangeFilter(Level.DEBUG, true, Level.WARN, false);
+ final AtomicBoolean ran = new AtomicBoolean();
+ final Handler handler = new CheckingHandler(ran);
+ final Logger logger = Logger.getLogger("filterTest");
+ logger.setUseParentHandlers(false);
+ logger.addHandler(handler);
+ logger.setLevel(Level.INFO);
+ logger.setFilter(filter);
+ handler.setLevel(Level.INFO);
+ logger.warning("This is a test.");
+ assertFalse("Handler was run", ran.get());
+ }
+
public void testRegexFilter0() {
final Filter filter = new RegexFilter("test");
final AtomicBoolean ran = new AtomicBoolean();
More information about the jboss-svn-commits
mailing list