1
2
3
4
5
6
7
8
9
10
11
12
13
14 package chapter4;
15
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18 import org.slf4j.MDC;
19
20 import ch.qos.logback.classic.LoggerContext;
21 import ch.qos.logback.classic.joran.JoranConfigurator;
22 import ch.qos.logback.core.joran.spi.JoranException;
23 import ch.qos.logback.core.util.StatusPrinter;
24 import chapter4.sub.sample.Bar;
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class ConfigurationTester {
40
41 public static void main(String[] args) throws InterruptedException {
42 Logger logger = (Logger) LoggerFactory.getLogger(ConfigurationTester.class);
43 LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
44
45 try {
46 JoranConfigurator configurator = new JoranConfigurator();
47 configurator.setContext(lc);
48 lc.reset();
49 configurator.doConfigure(args[0]);
50 } catch (JoranException je) {
51 je.printStackTrace();
52 }
53
54
55 StatusPrinter.print(lc.getStatusManager());
56
57 logger.debug("**Hello {}", new Bar());
58 MDC.put("testKey", "testValueFromMDC");
59 MDC.put("testKey2", "value2");
60 for (int i = 0; i < 10; i++) {
61 logger.debug("logging statement " + i);
62 Thread.sleep(1000);
63 }
64 Bar bar = new Bar();
65 bar.createLoggingRequest();
66 }
67 }