You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2002/07/05 13:11:43 UTC
cvs commit: jakarta-log4j/tests/src/java/org/apache/log4j AsyncAppenderTestCase.java VectorAppender.java
ceki 2002/07/05 04:11:43
Modified: src/java/org/apache/log4j Tag: v1_2-branch
AsyncAppender.java
tests/src/java/org/apache/log4j Tag: v1_2-branch
AsyncAppenderTestCase.java VectorAppender.java
Log:
- AyncAppener now closes its embedded appenders when
AsyncAppender.close() is called.
- New test cases in AsyncAppenderTestCase.java
Revision Changes Path
No revision
No revision
1.30.2.3 +5 -2 jakarta-log4j/src/java/org/apache/log4j/AsyncAppender.java
Index: AsyncAppender.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/AsyncAppender.java,v
retrieving revision 1.30.2.2
retrieving revision 1.30.2.3
diff -u -r1.30.2.2 -r1.30.2.3
--- AsyncAppender.java 4 Jul 2002 13:03:13 -0000 1.30.2.2
+++ AsyncAppender.java 5 Jul 2002 11:11:42 -0000 1.30.2.3
@@ -53,7 +53,7 @@
boolean interruptedWarningMessage = false;
- public yncAppender() {
+ public AsyncAppender() {
// Note: The dispatcher code assumes that the aai is set once and
// for all.
aai = new AppenderAttachableImpl();
@@ -286,7 +286,7 @@
// Exit loop if interrupted but only if the the buffer is empty.
if(interrupted) {
//cat.info("Exiting.");
- return;
+ break;
}
try {
//LogLog.debug("Waiting for new event to dispatch.");
@@ -311,5 +311,8 @@
}
}
} // while
+
+ // close and remove all appenders
+ aai.removeAllAppenders();
}
}
No revision
No revision
1.1.2.1 +51 -1 jakarta-log4j/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java
Index: AsyncAppenderTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -r1.1 -r1.1.2.1
--- AsyncAppenderTestCase.java 9 May 2002 17:44:54 -0000 1.1
+++ AsyncAppenderTestCase.java 5 Jul 2002 11:11:43 -0000 1.1.2.1
@@ -28,14 +28,17 @@
public void setUp() {
}
- public void tearDown() {
+ public void tearDown() {
+ LogManager.shutdown();
}
+ // this test checks whether it is possible to write to a closed AsyncAppender
public void closeTest() throws Exception {
Logger root = Logger.getRootLogger();
Layout layout = new SimpleLayout();
VectorAppender vectorAppender = new VectorAppender();
AsyncAppender asyncAppender = new AsyncAppender();
+ asyncAppender.setName("async-CloseTest");
asyncAppender.addAppender(vectorAppender);
root.addAppender(asyncAppender);
@@ -45,13 +48,60 @@
Vector v = vectorAppender.getVector();
assertEquals(v.size(), 1);
+ }
+
+ // this test checks whether appenders embedded within an AsyncAppender are also
+ // closed
+ public void test2() {
+ Logger root = Logger.getRootLogger();
+ Layout layout = new SimpleLayout();
+ VectorAppender vectorAppender = new VectorAppender();
+ AsyncAppender asyncAppender = new AsyncAppender();
+ asyncAppender.setName("async-test2");
+ asyncAppender.addAppender(vectorAppender);
+ root.addAppender(asyncAppender);
+
+ root.debug("m1");
+ asyncAppender.close();
+ root.debug("m2");
+ Vector v = vectorAppender.getVector();
+ assertEquals(v.size(), 1);
+ assertTrue(vectorAppender.isClosed());
+ }
+
+ // this test checks whether appenders embedded within an AsyncAppender are also
+ // closed
+ public void test3() {
+ int LEN = 200;
+ Logger root = Logger.getRootLogger();
+ Layout layout = new SimpleLayout();
+ VectorAppender vectorAppender = new VectorAppender();
+ AsyncAppender asyncAppender = new AsyncAppender();
+ asyncAppender.setName("async-test3");
+ asyncAppender.addAppender(vectorAppender);
+ root.addAppender(asyncAppender);
+ for(int i = 0; i < LEN; i++) {
+ root.debug("message"+i);
+ }
+
+ System.out.println("Done loop.");
+ System.out.flush();
+ asyncAppender.close();
+ root.debug("m2");
+
+ Vector v = vectorAppender.getVector();
+ assertEquals(v.size(), LEN);
+ assertTrue(vectorAppender.isClosed());
}
+
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new AsyncAppenderTestCase("closeTest"));
+ suite.addTest(new AsyncAppenderTestCase("test2"));
+ suite.addTest(new AsyncAppenderTestCase("test3"));
return suite;
}
1.1.2.2 +7 -3 jakarta-log4j/tests/src/java/org/apache/log4j/VectorAppender.java
Index: VectorAppender.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/tests/src/java/org/apache/log4j/VectorAppender.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- VectorAppender.java 5 Jul 2002 08:44:20 -0000 1.1.2.1
+++ VectorAppender.java 5 Jul 2002 11:11:43 -0000 1.1.2.2
@@ -42,6 +42,11 @@
*/
public void append(LoggingEvent event) {
System.out.println("---Vector appender called with message ["+event.getRenderedMessage()+"].");
+ System.out.flush();
+ try {
+ Thread.currentThread().sleep(100);
+ } catch(Exception e) {
+ }
vector.addElement(event);
}
@@ -49,8 +54,7 @@
return vector;
}
- public synchronized
- void close() {
+ public synchronized void close() {
if(this.closed)
return;
this.closed = true;
@@ -58,7 +62,7 @@
public boolean isClosed() {
- return this.closed;
+ return closed;
}
public boolean requiresLayout() {
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>