1 package ch.qos.logback.classic.turbo;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.slf4j.MDC;
7 import org.slf4j.Marker;
8
9 import ch.qos.logback.classic.ClassicGlobal;
10 import ch.qos.logback.classic.Level;
11 import ch.qos.logback.classic.Logger;
12 import ch.qos.logback.core.spi.FilterReply;
13
14
15
16
17
18
19
20
21
22
23
24
25 public class DebugUsersTurboFilter extends TurboFilter {
26
27 List<String> userList = new ArrayList<String>();
28
29 @Override
30 public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) {
31 if (!level.equals(Level.DEBUG)) {
32 return FilterReply.NEUTRAL;
33 }
34 String user = MDC.get(ClassicGlobal.USER_MDC_KEY);
35 if (user != null && userList.contains(user)) {
36 return FilterReply.ACCEPT;
37 }
38 return FilterReply.NEUTRAL;
39 }
40
41 public void addUser(String user) {
42 userList.add(user);
43 }
44
45
46 public List<String> getUsers() {
47 return userList;
48 }
49
50 }