1 package org.slf4j.bridge;
2
3 import java.util.logging.Level;
4
5 import org.apache.log4j.spi.LocationInfo;
6 import org.apache.log4j.spi.LoggingEvent;
7 import org.slf4j.bridge.SLF4JBridgeHandler;
8
9 import junit.framework.TestCase;
10
11 public class SLF4JBridgeHandlerTest extends TestCase {
12
13 static String LOGGER_NAME = "yay";
14
15 ListAppender listAppender = new ListAppender();
16 org.apache.log4j.Logger log4jRoot;
17 java.util.logging.Logger julLogger = java.util.logging.Logger
18 .getLogger("yay");
19
20 public SLF4JBridgeHandlerTest(String arg0) {
21 super(arg0);
22 }
23
24 protected void setUp() throws Exception {
25 super.setUp();
26 listAppender.extractLocationInfo = true;
27 log4jRoot = org.apache.log4j.Logger.getRootLogger();
28 log4jRoot.addAppender(listAppender);
29 log4jRoot.setLevel(org.apache.log4j.Level.TRACE);
30 }
31
32 protected void tearDown() throws Exception {
33 super.tearDown();
34 log4jRoot.getLoggerRepository().resetConfiguration();
35 }
36
37 public void testSmoke() {
38 SLF4JBridgeHandler.install();
39 String msg = "msg";
40 julLogger.info(msg);
41 assertEquals(1, listAppender.list.size());
42 LoggingEvent le = (LoggingEvent) listAppender.list.get(0);
43 assertEquals(LOGGER_NAME, le.getLoggerName());
44 assertEquals(msg, le.getMessage());
45
46
47
48
49
50 LocationInfo li = le.getLocationInformation();
51 System.out.println(li.fullInfo);
52 assertEquals("SLF4JBridgeHandlerTest.java", li.getFileName());
53 assertEquals("testSmoke", li.getMethodName());
54 }
55
56 public void testLevels() {
57 SLF4JBridgeHandler.install();
58 String msg = "msg";
59 julLogger.setLevel(Level.ALL);
60
61 julLogger.finest(msg);
62 julLogger.finer(msg);
63 julLogger.fine(msg);
64 julLogger.info(msg);
65 julLogger.warning(msg);
66 julLogger.severe(msg);
67
68 assertEquals(6, listAppender.list.size());
69 int i = 0;
70 assertLevel(i++, org.apache.log4j.Level.TRACE);
71 assertLevel(i++, org.apache.log4j.Level.DEBUG);
72 assertLevel(i++, org.apache.log4j.Level.DEBUG);
73 assertLevel(i++, org.apache.log4j.Level.INFO);
74 assertLevel(i++, org.apache.log4j.Level.WARN);
75 assertLevel(i++, org.apache.log4j.Level.ERROR);
76 }
77
78 void assertLevel(int index, org.apache.log4j.Level expectedLevel) {
79 LoggingEvent le = (LoggingEvent) listAppender.list.get(index);
80 assertEquals(expectedLevel, le.getLevel());
81 }
82 }