1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.log4j.helpers;
19
20 import org.apache.log4j.spi.AppenderAttachable;
21 import org.apache.log4j.spi.LoggingEvent;
22
23 import org.apache.log4j.Appender;
24 import java.util.Vector;
25 import java.util.Enumeration;
26
27
28
29
30
31
32
33 public class AppenderAttachableImpl implements AppenderAttachable {
34
35
36 protected Vector appenderList;
37
38
39
40
41
42 public
43 void addAppender(Appender newAppender) {
44
45 if(newAppender == null)
46 return;
47
48 if(appenderList == null) {
49 appenderList = new Vector(1);
50 }
51 if(!appenderList.contains(newAppender))
52 appenderList.addElement(newAppender);
53 }
54
55
56
57 public
58 int appendLoopOnAppenders(LoggingEvent event) {
59 int size = 0;
60 Appender appender;
61
62 if(appenderList != null) {
63 size = appenderList.size();
64 for(int i = 0; i < size; i++) {
65 appender = (Appender) appenderList.elementAt(i);
66 appender.doAppend(event);
67 }
68 }
69 return size;
70 }
71
72
73
74
75
76
77
78
79 public
80 Enumeration getAllAppenders() {
81 if(appenderList == null)
82 return null;
83 else
84 return appenderList.elements();
85 }
86
87
88
89
90
91
92
93
94 public
95 Appender getAppender(String name) {
96 if(appenderList == null || name == null)
97 return null;
98
99 int size = appenderList.size();
100 Appender appender;
101 for(int i = 0; i < size; i++) {
102 appender = (Appender) appenderList.elementAt(i);
103 if(name.equals(appender.getName()))
104 return appender;
105 }
106 return null;
107 }
108
109
110
111
112
113
114
115 public
116 boolean isAttached(Appender appender) {
117 if(appenderList == null || appender == null)
118 return false;
119
120 int size = appenderList.size();
121 Appender a;
122 for(int i = 0; i < size; i++) {
123 a = (Appender) appenderList.elementAt(i);
124 if(a == appender)
125 return true;
126 }
127 return false;
128 }
129
130
131
132
133
134
135 public
136 void removeAllAppenders() {
137 if(appenderList != null) {
138 int len = appenderList.size();
139 for(int i = 0; i < len; i++) {
140 Appender a = (Appender) appenderList.elementAt(i);
141 a.close();
142 }
143 appenderList.removeAllElements();
144 appenderList = null;
145 }
146 }
147
148
149
150
151
152 public
153 void removeAppender(Appender appender) {
154 if(appender == null || appenderList == null)
155 return;
156 appenderList.removeElement(appender);
157 }
158
159
160
161
162
163
164 public
165 void removeAppender(String name) {
166 if(name == null || appenderList == null) return;
167 int size = appenderList.size();
168 for(int i = 0; i < size; i++) {
169 if(name.equals(((Appender)appenderList.elementAt(i)).getName())) {
170 appenderList.removeElementAt(i);
171 break;
172 }
173 }
174 }
175
176 }