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  
18  package org.apache.log4j;
19  
20  import java.util.Vector;
21  import org.apache.log4j.Layout;
22  import org.apache.log4j.spi.LoggingEvent;
23  import org.apache.log4j.helpers.OptionConverter;
24  import org.apache.log4j.helpers.Transform;
25  import org.apache.log4j.helpers.LogLog;
26  
27  /***
28     An appender that appends logging events to a vector.
29     @author Ceki  Gülcü
30  */
31  public class VectorAppender extends AppenderSkeleton {
32  
33    public Vector vector;
34    
35    public VectorAppender() {
36      vector = new Vector();
37    }
38  
39    /***
40       Does nothing.
41    */
42    public void activateOptions() {
43    }
44  
45  
46    /***
47       This method is called by the {@link AppenderSkeleton#doAppend}
48       method.
49  
50    */
51    public void append(LoggingEvent event) {
52      //System.out.println("---Vector appender called with message ["+event.getRenderedMessage()+"].");
53      //System.out.flush();
54      try {
55        Thread.currentThread().sleep(100);
56      } catch(Exception e) {
57      }
58      vector.addElement(event);
59     }
60  
61    public Vector getVector() {
62      return vector;
63    }
64  
65    public synchronized void close() {
66      if(this.closed)
67        return;
68      this.closed = true;
69    }
70  
71  
72    public boolean isClosed() {
73      return closed;
74    }
75  
76    public boolean requiresLayout() {
77      return false;
78    }
79  }