View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.log4j;
18  
19  import org.apache.log4j.Layout;
20  import org.apache.log4j.helpers.LogLog;
21  import org.apache.log4j.helpers.OptionConverter;
22  import org.apache.log4j.helpers.Transform;
23  import org.apache.log4j.spi.LoggingEvent;
24  
25  import java.util.Vector;
26  
27  
28  /***
29     An appender that appends logging events to a vector.
30  */
31  public class VectorAppender extends AppenderSkeleton {
32      public Vector vector;
33  
34      public VectorAppender() {
35          vector = new Vector();
36      }
37  
38      /***
39         Does nothing.
40      */
41      public void activateOptions() {
42      }
43  
44      /***
45         This method is called by the {@link AppenderSkeleton#doAppend}
46         method.
47  
48      */
49      public void append(LoggingEvent event) {
50          //System.out.println("---Vector appender called with message ["+event.getRenderedMessage()+"].");
51          //System.out.flush();
52          try {
53              Thread.currentThread().sleep(100);
54          } catch (Exception e) {
55          }
56  
57          vector.addElement(event);
58      }
59  
60      public Vector getVector() {
61          return vector;
62      }
63  
64      public synchronized void close() {
65          if (this.closed) {
66              return;
67          }
68  
69          this.closed = true;
70      }
71  
72      public boolean isClosed() {
73          return closed;
74      }
75  
76      public boolean requiresLayout() {
77          return false;
78      }
79  }