1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package org.slf4j.impl;
26
27 import java.util.logging.Handler;
28 import java.util.logging.LogRecord;
29 import java.util.logging.Logger;
30
31 import junit.framework.TestCase;
32
33 public class JDK14AdapterLoggerNameTest extends TestCase {
34 private MockHandler mockHandler;
35
36 protected void setUp() throws Exception {
37 super.setUp();
38 Logger logger = Logger.getLogger("TEST");
39 mockHandler = new MockHandler();
40 removeHandlers(logger);
41 logger.addHandler(mockHandler);
42 }
43
44 protected void tearDown() throws Exception {
45 removeHandlers(Logger.getLogger("TEST"));
46 super.tearDown();
47 }
48
49 public void testLoggerNameusingJdkLogging() throws Exception {
50 Logger.getLogger("TEST").info("test message");
51 assertCorrectLoggerName();
52
53 }
54
55 public void testLoggerNameUsingSlf4j() throws Exception {
56 JDK14LoggerFactory factory = new JDK14LoggerFactory();
57 org.slf4j.Logger logger = factory.getLogger("TEST");
58 logger.info("test message");
59 assertCorrectLoggerName();
60 }
61
62 private void removeHandlers(Logger logger) {
63 logger.setUseParentHandlers(false);
64 Handler[] handlers = logger.getHandlers();
65 for (int i = 0; i < handlers.length; i++) {
66 logger.removeHandler(handlers[i]);
67 }
68 }
69
70 private void assertCorrectLoggerName() {
71 assertNotNull("no log record", mockHandler.record);
72 assertNotNull("missing logger name", mockHandler.record.getLoggerName());
73 }
74
75 private class MockHandler extends java.util.logging.Handler {
76 public LogRecord record;
77
78 public void close() throws SecurityException {
79 }
80
81 public void flush() {
82 }
83
84 public void publish(LogRecord record) {
85 this.record = record;
86 }
87
88 }
89 }