1
2
3
4
5
6
7
8
9
10
11 package chapter7;
12
13 import java.net.URL;
14
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17 import org.slf4j.MDC;
18
19 import ch.qos.logback.classic.LoggerContext;
20 import ch.qos.logback.classic.PatternLayout;
21 import ch.qos.logback.classic.joran.JoranConfigurator;
22 import ch.qos.logback.classic.spi.LoggingEvent;
23 import ch.qos.logback.core.ConsoleAppender;
24 import ch.qos.logback.core.joran.spi.JoranException;
25 import ch.qos.logback.core.util.Loader;
26 import ch.qos.logback.core.util.StatusPrinter;
27
28 public class SimpleMDC {
29 static public void main(String[] args) throws Exception {
30
31
32 MDC.put("first", "Dorothy");
33
34
35
36 configureViaXML_File();
37
38
39
40
41
42
43 Logger logger = LoggerFactory.getLogger(SimpleMDC.class);
44
45 MDC.put("last", "Parker");
46
47
48
49 logger.info("Check enclosed.");
50 logger.debug("The most beautiful two words in English.");
51
52 MDC.put("first", "Richard");
53 MDC.put("last", "Nixon");
54 logger.info("I am not a crook.");
55 logger.info("Attributed to the former US president. 17 Nov 1973.");
56 }
57
58 static void programmaticConfiguration() {
59
60 LoggerContext loggerContext = (LoggerContext) LoggerFactory
61 .getILoggerFactory();
62 loggerContext.reset();
63 PatternLayout layout = new PatternLayout();
64 layout.setContext(loggerContext);
65 layout.setPattern("%X{first} %X{last} - %m%n");
66 layout.start();
67 ConsoleAppender<LoggingEvent> appender = new ConsoleAppender<LoggingEvent>();
68 appender.setContext(loggerContext);
69 appender.setLayout(layout);
70 appender.start();
71
72
73 ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) LoggerFactory
74 .getLogger("root");
75 root.addAppender(appender);
76 }
77
78 static void configureViaXML_File() {
79 LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
80 try {
81 JoranConfigurator configurator = new JoranConfigurator();
82 configurator.setContext(lc);
83 lc.stop();
84 URL url = Loader.getResourceBySelfClassLoader("chapter7/simpleMDC.xml");
85 configurator.doConfigure(url);
86 } catch (JoranException je) {
87 StatusPrinter.print(lc);
88 }
89 }
90
91 }