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