diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerFilter.java index d455849fbf..ca84d34e93 100644 --- a/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerFilter.java +++ b/logback-classic/src/main/java/ch/qos/logback/classic/turbo/MarkerFilter.java @@ -47,7 +47,7 @@ public FilterReply decide(Marker marker, Logger logger, Level level, String form return onMismatch; } - if(markerToMatch.contains(marker)) { + if(marker.contains(markerToMatch)) { return onMatch; } else { return onMismatch; diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerFilterTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerFilterTest.java index c94081dce5..7d23a8b01b 100644 --- a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerFilterTest.java +++ b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/MarkerFilterTest.java @@ -25,10 +25,11 @@ public class MarkerFilterTest { - static String MARKER_NAME = "toto"; - - Marker totoMarker = MarkerFactory.getMarker(MARKER_NAME); - + static String TOTO = "TOTO"; + static String COMPOSITE = "COMPOSITE"; + + Marker totoMarker = MarkerFactory.getMarker(TOTO); + @Test public void testNoMarker() { @@ -44,14 +45,33 @@ public void testNoMarker() { @Test public void testBasic() { MarkerFilter mkt = new MarkerFilter(); - mkt.setMarker(MARKER_NAME); + mkt.setMarker(TOTO); + mkt.setOnMatch("ACCEPT"); + mkt.setOnMismatch("DENY"); + + mkt.start(); + assertTrue(mkt.isStarted()); + assertEquals(FilterReply.DENY, mkt.decide(null, null, null, null, null, null)); + assertEquals(FilterReply.ACCEPT, mkt.decide(totoMarker, null, null, null, null, null)); + } + + @Test + public void testComposite() { + String compositeMarkerName = COMPOSITE; + Marker compositeMarker = MarkerFactory.getMarker(compositeMarkerName); + compositeMarker.add(totoMarker); + + MarkerFilter mkt = new MarkerFilter(); + mkt.setMarker(TOTO); mkt.setOnMatch("ACCEPT"); mkt.setOnMismatch("DENY"); mkt.start(); + assertTrue(mkt.isStarted()); assertEquals(FilterReply.DENY, mkt.decide(null, null, null, null, null, null)); assertEquals(FilterReply.ACCEPT, mkt.decide(totoMarker, null, null, null, null, null)); + assertEquals(FilterReply.ACCEPT, mkt.decide(compositeMarker, null, null, null, null, null)); } - + }