
[ http://jira.qos.ch/browse/LBCLASSIC-295?page=com.atlassian.jira.plugin.syste... ] Paolo Mazzoncini updated LBCLASSIC-295: --------------------------------------- Attachment: compositeMarker.patch The complete patch
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 Attachments: compositeMarker.patch
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