1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.log4j;
19
20 import org.apache.log4j.spi.ErrorHandler;
21 import org.apache.log4j.spi.LoggingEvent;
22
23 import java.util.Vector;
24
25
26
27
28
29
30
31
32 public final class VectorErrorHandler implements ErrorHandler {
33
34
35
36 private Logger logger;
37
38
39
40
41 private Appender appender;
42
43
44
45
46 private Appender backupAppender;
47
48
49
50
51 private final Vector errors = new Vector();
52
53
54
55
56 public VectorErrorHandler() {
57 }
58
59
60
61
62 public void setLogger(final Logger logger) {
63 this.logger = logger;
64 }
65
66
67
68
69
70 public Logger getLogger() {
71 return logger;
72 }
73
74
75
76
77 public void activateOptions() {
78 }
79
80
81
82
83 public void error(
84 final String message, final Exception e, final int errorCode) {
85 error(message, e, errorCode, null);
86 }
87
88
89
90
91 public void error(final String message) {
92 error(message, null, -1, null);
93 }
94
95
96
97
98 public void error(
99 final String message, final Exception e, final int errorCode,
100 final LoggingEvent event) {
101 errors.addElement(
102 new Object[] { message, e, new Integer(errorCode), event });
103 }
104
105
106
107
108
109
110
111 public String getMessage(final int index) {
112 return (String) ((Object[]) errors.elementAt(index))[0];
113 }
114
115
116
117
118
119
120
121 public Exception getException(final int index) {
122 return (Exception) ((Object[]) errors.elementAt(index))[1];
123 }
124
125
126
127
128
129
130
131 public int getErrorCode(final int index) {
132 return ((Integer) ((Object[]) errors.elementAt(index))[2]).intValue();
133 }
134
135
136
137
138
139
140
141 public LoggingEvent getEvent(final int index) {
142 return (LoggingEvent) ((Object[]) errors.elementAt(index))[3];
143 }
144
145
146
147
148
149 public int size() {
150 return errors.size();
151 }
152
153
154
155
156 public void setAppender(final Appender appender) {
157 this.appender = appender;
158 }
159
160
161
162
163
164 public Appender getAppender() {
165 return appender;
166 }
167
168
169
170
171 public void setBackupAppender(final Appender appender) {
172 this.backupAppender = appender;
173 }
174
175
176
177
178
179 public Appender getBackupAppender() {
180 return backupAppender;
181 }
182 }