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.dummyExt;
26
27 import java.util.Date;
28 import java.util.Locale;
29 import java.util.TimeZone;
30
31 import junit.framework.TestCase;
32
33 import org.apache.log4j.spi.LocationInfo;
34 import org.apache.log4j.spi.LoggingEvent;
35 import org.slf4j.MDC;
36 import org.slf4j.ext.EventData;
37 import org.slf4j.ext.EventLogger;
38
39 public class EventLoggerTest extends TestCase {
40
41 ListAppender listAppender;
42 org.apache.log4j.Logger log4;
43
44 final static String EXPECTED_FILE_NAME = "EventLoggerTest.java";
45
46 public EventLoggerTest(String name) {
47 super(name);
48 }
49
50 public void setUp() throws Exception {
51 super.setUp();
52
53
54
55 listAppender = new ListAppender();
56 listAppender.extractLocationInfo = true;
57 org.apache.log4j.Logger eventLogger = org.apache.log4j.Logger.getLogger("EventLogger");
58 eventLogger.addAppender(listAppender);
59 eventLogger.setLevel(org.apache.log4j.Level.TRACE);
60 eventLogger.setAdditivity(false);
61
62 MDC.put("ipAddress", "192.168.1.110");
63 MDC.put("login", "TestUSer");
64 MDC.put("hostname", "localhost");
65 MDC.put("productName", "SLF4J");
66 MDC.put("locale", Locale.getDefault().getDisplayName());
67 MDC.put("timezone", TimeZone.getDefault().getDisplayName());
68
69 }
70
71 public void tearDown() throws Exception {
72 super.tearDown();
73 MDC.clear();
74 }
75
76 void verify(LoggingEvent le, String expectedMsg) {
77 assertEquals(expectedMsg, le.getMessage());
78 assertEquals(EXPECTED_FILE_NAME, le.getLocationInformation().getFileName());
79 }
80
81 public void testEventLogger() {
82 EventData data[] = new EventData[2];
83 data[0] = new EventData();
84 data[0].setEventType("Login");
85 data[0].setEventId("1");
86 data[0].setEventDateTime(new Date());
87 data[0].put("Userid", "TestUser");
88 EventLogger.logEvent(data[0]);
89
90 data[1] = new EventData();
91 data[1].setEventType("Update");
92 data[1].setEventId("2");
93 data[1].setEventDateTime(new Date());
94 data[1].put("FileName", "/etc/hosts");
95 EventLogger.logEvent(data[1]);
96
97 assertEquals(2, listAppender.list.size());
98 for (int i = 0; i < 2; ++i) {
99 LoggingEvent event = listAppender.list.get(i);
100 verify(event, data[i].toXML());
101 LocationInfo li = event.getLocationInformation();
102 assertEquals(this.getClass().getName(), li.getClassName());
103 assertEquals(event.getMDC("hostname"), "localhost");
104 }
105 }
106 }