[logback-dev] [JIRA] Created: (LBCLASSIC-295) MarkerFilter doesn't recognize nested markers.

Paolo Mazzoncini (JIRA) noreply-jira at qos.ch
Mon Sep 12 18:31:16 CEST 2011


MarkerFilter doesn't recognize nested markers.
----------------------------------------------

                 Key: LBCLASSIC-295
                 URL: http://jira.qos.ch/browse/LBCLASSIC-295
             Project: logback-classic
          Issue Type: Bug
          Components: Other
    Affects Versions: 0.9.29
         Environment: MacOsx, Jdk 1.6 update 26
            Reporter: Paolo Mazzoncini
            Assignee: Logback dev list


I was trying to use nested markers to organize my logs in a better (maybe) way.
But the MarkerFilter (ch.qos.logback.classic.turbo.MarkerFilter) did not treat nested (or composite) markers as I expect.

Here a test that shows this issue, this test can be appended to ch.qos.logback.classic.turbo.MarkerFilterTest:

@Test
  public void testComposite(){
    String compositeMarkerName = "compositeMarker";
    Marker compositeMarker=MarkerFactory.getMarker(compositeMarkerName);
    compositeMarker.add(totoMarker);
    
    MarkerFilter mkt = new MarkerFilter();
    mkt.setMarker(MARKER_NAME);
    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));
  }

The solution that I found is pretty simple, here is the patch:

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 8e133cb..434b035 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 class MarkerFilter extends MatchingFilter {
       return onMismatch;
     } 
     
-    if(markerToMatch.contains(marker)) {
+    if(marker.contains(markerToMatch)) {
       return onMatch;
     } else {
       return onMismatch;
-- 
1.7.5.4




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the logback-dev mailing list