1 package chapter6;
2
3 import org.slf4j.Marker;
4 import org.slf4j.MarkerFactory;
5
6 import ch.qos.logback.classic.Level;
7 import ch.qos.logback.classic.Logger;
8 import ch.qos.logback.classic.turbo.TurboFilter;
9 import ch.qos.logback.core.spi.FilterReply;
10
11 public class SampleTurboFilter extends TurboFilter {
12
13 String marker;
14 Marker markerToAccept;
15
16 @Override
17 public FilterReply decide(Marker marker, Logger logger, Level level,
18 String format, Object[] params, Throwable t) {
19
20 if (!isStarted()) {
21 return FilterReply.NEUTRAL;
22 }
23
24 if ((markerToAccept.equals(marker))) {
25 return FilterReply.ACCEPT;
26 } else {
27 return FilterReply.NEUTRAL;
28 }
29 }
30
31 public String getMarker() {
32 return marker;
33 }
34
35 public void setMarker(String markerStr) {
36 this.marker = markerStr;
37 }
38
39 @Override
40 public void start() {
41 if (marker != null && marker.trim().length() > 0) {
42 markerToAccept = MarkerFactory.getMarker(marker);
43 super.start();
44 }
45 }
46 }