1
2
3
4
5
6
7
8
9
10 package org.dummy;
11
12 import static org.junit.Assert.assertEquals;
13
14 import org.apache.log4j.Logger;
15 import org.junit.Before;
16 import org.junit.Test;
17 import org.slf4j.LoggerFactory;
18
19 import ch.qos.logback.classic.Level;
20 import ch.qos.logback.classic.LoggerContext;
21 import ch.qos.logback.classic.PatternLayout;
22 import ch.qos.logback.classic.spi.LoggingEvent;
23
24
25
26
27
28
29
30 public class Log4jInvocation {
31
32 static final String HELLO = "Hello";
33
34 DummyLBAppender listAppender;
35 LoggerContext lc;
36 ch.qos.logback.classic.Logger rootLogger;
37
38 @Before
39 public void fixture() {
40 lc = (LoggerContext) LoggerFactory.getILoggerFactory();
41 lc.reset();
42
43 listAppender = new DummyLBAppender();
44 listAppender.setContext(lc);
45 listAppender.start();
46 rootLogger = lc.getLogger("root");
47 rootLogger.addAppender(listAppender);
48 }
49
50 @Test
51 public void basic() {
52 assertEquals(0, listAppender.list.size());
53
54 Logger logger = Logger.getLogger("basic-test");
55 logger.debug(HELLO);
56
57 assertEquals(1, listAppender.list.size());
58 LoggingEvent event = (LoggingEvent) listAppender.list.get(0);
59 assertEquals(HELLO, event.getMessage());
60 }
61
62 @Test
63 public void callerData() {
64 assertEquals(0, listAppender.list.size());
65
66 PatternLayout pl = new PatternLayout();
67 pl.setPattern("%-5level [%class] %logger - %msg");
68 pl.setContext(lc);
69 pl.start();
70 listAppender.layout = pl;
71
72 Logger logger = Logger.getLogger("basic-test");
73 logger.trace("none");
74 assertEquals(0, listAppender.list.size());
75
76 rootLogger.setLevel(Level.TRACE);
77 logger.trace(HELLO);
78 assertEquals(1, listAppender.list.size());
79
80 LoggingEvent event = (LoggingEvent) listAppender.list.get(0);
81 assertEquals(HELLO, event.getMessage());
82
83 assertEquals(1, listAppender.stringList.size());
84 assertEquals("TRACE [" + Log4jInvocation.class.getName()
85 + "] basic-test - Hello", listAppender.stringList.get(0));
86 }
87 }