1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.log4j.net;
18
19 import junit.framework.TestCase;
20
21 import org.apache.log4j.Appender;
22 import org.apache.log4j.AppenderSkeleton;
23 import org.apache.log4j.Logger;
24 import org.apache.log4j.spi.LoggingEvent;
25 import org.apache.log4j.xml.DOMConfigurator;
26
27 public class SocketAppenderTest extends TestCase {
28
29 /***
30 * Create new instance.
31 */
32 public SocketAppenderTest(final String testName) {
33 super(testName);
34 }
35
36
37
38 protected void setUp() {
39 DOMConfigurator.configure("input/xml/SocketAppenderTestConfig.xml");
40
41 logger = Logger.getLogger(SocketAppenderTest.class);
42 primary = logger.getAppender("remote");
43 secondary = (LastOnlyAppender) Logger.getLogger(
44 "org.apache.log4j.net.SocketAppenderTestDummy").getAppender("lastOnly");
45 }
46
47 protected void tearDown() {
48 }
49
50
51
52 public void testFallbackErrorHandlerWhenStarting() {
53 String msg = "testFallbackErrorHandlerWhenStarting";
54 logger.debug(msg);
55
56
57 assertEquals("SocketAppender with FallbackErrorHandler", msg, secondary.getLastMessage());
58 }
59
60
61
62 private static Logger logger;
63 private static Appender primary;
64 private static LastOnlyAppender secondary;
65
66
67
68 /***
69 * Inner-class For debugging purposes only Saves last LoggerEvent
70 */
71 static public class LastOnlyAppender extends AppenderSkeleton {
72 protected void append(LoggingEvent event) {
73 this.lastEvent = event;
74 }
75
76 public boolean requiresLayout() {
77 return false;
78 }
79
80 public void close() {
81 this.closed = true;
82 }
83
84 /***
85 * @return last appended LoggingEvent's message
86 */
87 public String getLastMessage() {
88 if (this.lastEvent != null)
89 return this.lastEvent.getMessage().toString();
90 else
91 return "";
92 }
93
94 private LoggingEvent lastEvent;
95 };
96
97 }