1 package org.slf4j.event;
2
3 import java.util.Queue;
4
5 import org.slf4j.Logger;
6 import org.slf4j.Marker;
7 import org.slf4j.helpers.SubstituteLogger;
8
9 public class EventRecodingLogger implements Logger {
10
11 String name;
12 SubstituteLogger logger;
13 Queue<SubstituteLoggingEvent> eventQueue;
14
15 public EventRecodingLogger(SubstituteLogger logger, Queue<SubstituteLoggingEvent> eventQueue) {
16 this.logger = logger;
17 this.name = logger.getName();
18 this.eventQueue = eventQueue;
19 }
20
21 public String getName() {
22 return name;
23 }
24
25 private void recordEvent(Level level, String msg, Object[] args, Throwable throwable) {
26 recordEvent(level, null, msg, args, throwable);
27 }
28
29 private void recordEvent(Level level, Marker marker, String msg, Object[] args, Throwable throwable) {
30
31 SubstituteLoggingEvent loggingEvent = new SubstituteLoggingEvent();
32 loggingEvent.setTimeStamp(System.currentTimeMillis());
33 loggingEvent.setLevel(level);
34 loggingEvent.setLogger(logger);
35 loggingEvent.setLoggerName(name);
36
37 loggingEvent.setMessage(msg);
38 loggingEvent.setArgumentArray(args);
39 loggingEvent.setThrowable(throwable);
40 loggingEvent.setThreadName(Thread.currentThread().getName());
41 eventQueue.add(loggingEvent);
42 }
43
44 public boolean isTraceEnabled() {
45 return true;
46 }
47
48 public void trace(String msg) {
49 recordEvent(Level.TRACE, msg, null, null);
50 }
51
52 public void trace(String format, Object arg) {
53 recordEvent(Level.TRACE, format, new Object[] { arg }, null);
54 }
55
56 public void trace(String format, Object arg1, Object arg2) {
57 recordEvent(Level.TRACE, format, new Object[] { arg1, arg2 }, null);
58 }
59
60 public void trace(String format, Object... arguments) {
61 recordEvent(Level.TRACE, format, arguments, null);
62 }
63
64 public void trace(String msg, Throwable t) {
65 recordEvent(Level.TRACE, msg, null, t);
66 }
67
68 public boolean isTraceEnabled(Marker marker) {
69 return true;
70 }
71
72 public void trace(Marker marker, String msg) {
73 recordEvent(Level.TRACE, marker, msg, null, null);
74
75 }
76
77 public void trace(Marker marker, String format, Object arg) {
78 recordEvent(Level.TRACE, marker, format, new Object[] { arg }, null);
79 }
80
81 public void trace(Marker marker, String format, Object arg1, Object arg2) {
82 recordEvent(Level.TRACE, marker, format, new Object[] { arg1, arg2 }, null);
83 }
84
85 public void trace(Marker marker, String format, Object... argArray) {
86 recordEvent(Level.TRACE, marker, format, argArray, null);
87
88 }
89
90 public void trace(Marker marker, String msg, Throwable t) {
91 recordEvent(Level.TRACE, marker, msg, null, t);
92 }
93
94 public boolean isDebugEnabled() {
95 return true;
96 }
97
98 public void debug(String msg) {
99 recordEvent(Level.TRACE, msg, null, null);
100 }
101
102 public void debug(String format, Object arg) {
103 recordEvent(Level.DEBUG, format, new Object[] { arg }, null);
104
105 }
106
107 public void debug(String format, Object arg1, Object arg2) {
108 recordEvent(Level.DEBUG, format, new Object[] { arg1, arg2 }, null);
109
110 }
111
112 public void debug(String format, Object... arguments) {
113 recordEvent(Level.DEBUG, format, arguments, null);
114 }
115
116 public void debug(String msg, Throwable t) {
117 recordEvent(Level.DEBUG, msg, null, t);
118 }
119
120 public boolean isDebugEnabled(Marker marker) {
121 return true;
122 }
123
124 public void debug(Marker marker, String msg) {
125 recordEvent(Level.DEBUG, marker, msg, null, null);
126 }
127
128 public void debug(Marker marker, String format, Object arg) {
129 recordEvent(Level.DEBUG, marker, format, new Object[] { arg }, null);
130 }
131
132 public void debug(Marker marker, String format, Object arg1, Object arg2) {
133 recordEvent(Level.DEBUG, marker, format, new Object[] { arg1, arg2 }, null);
134 }
135
136 public void debug(Marker marker, String format, Object... arguments) {
137 recordEvent(Level.DEBUG, marker, format, arguments, null);
138 }
139
140 public void debug(Marker marker, String msg, Throwable t) {
141 recordEvent(Level.DEBUG, marker, msg, null, t);
142 }
143
144 public boolean isInfoEnabled() {
145 return true;
146 }
147
148 public void info(String msg) {
149 recordEvent(Level.INFO, msg, null, null);
150 }
151
152 public void info(String format, Object arg) {
153 recordEvent(Level.INFO, format, new Object[] { arg }, null);
154 }
155
156 public void info(String format, Object arg1, Object arg2) {
157 recordEvent(Level.INFO, format, new Object[] { arg1, arg2 }, null);
158 }
159
160 public void info(String format, Object... arguments) {
161 recordEvent(Level.INFO, format, arguments, null);
162 }
163
164 public void info(String msg, Throwable t) {
165 recordEvent(Level.INFO, msg, null, t);
166 }
167
168 public boolean isInfoEnabled(Marker marker) {
169 return true;
170 }
171
172 public void info(Marker marker, String msg) {
173 recordEvent(Level.INFO, marker, msg, null, null);
174 }
175
176 public void info(Marker marker, String format, Object arg) {
177 recordEvent(Level.INFO, marker, format, new Object[] { arg }, null);
178 }
179
180 public void info(Marker marker, String format, Object arg1, Object arg2) {
181 recordEvent(Level.INFO, marker, format, new Object[] { arg1, arg2 }, null);
182 }
183
184 public void info(Marker marker, String format, Object... arguments) {
185 recordEvent(Level.INFO, marker, format, arguments, null);
186 }
187
188 public void info(Marker marker, String msg, Throwable t) {
189 recordEvent(Level.INFO, marker, msg, null, t);
190
191 }
192
193 public boolean isWarnEnabled() {
194 return true;
195 }
196
197 public void warn(String msg) {
198 recordEvent(Level.WARN, msg, null, null);
199 }
200
201 public void warn(String format, Object arg) {
202 recordEvent(Level.WARN, format, new Object[] { arg }, null);
203
204 }
205
206 public void warn(String format, Object arg1, Object arg2) {
207 recordEvent(Level.WARN, format, new Object[] { arg1, arg2 }, null);
208 }
209
210 public void warn(String format, Object... arguments) {
211 recordEvent(Level.WARN, format, arguments, null);
212 }
213
214 public void warn(String msg, Throwable t) {
215 recordEvent(Level.WARN, msg, null, t);
216 }
217
218 public boolean isWarnEnabled(Marker marker) {
219 return true;
220 }
221
222 public void warn(Marker marker, String msg) {
223 recordEvent(Level.WARN, msg, null, null);
224 }
225
226 public void warn(Marker marker, String format, Object arg) {
227 recordEvent(Level.WARN, format, new Object[] { arg }, null);
228 }
229
230 public void warn(Marker marker, String format, Object arg1, Object arg2) {
231 recordEvent(Level.WARN, marker, format, new Object[] { arg1, arg2 }, null);
232
233 }
234
235 public void warn(Marker marker, String format, Object... arguments) {
236 recordEvent(Level.WARN, marker, format, arguments, null);
237 }
238
239 public void warn(Marker marker, String msg, Throwable t) {
240 recordEvent(Level.WARN, marker, msg, null, t);
241 }
242
243 public boolean isErrorEnabled() {
244 return true;
245 }
246
247 public void error(String msg) {
248 recordEvent(Level.ERROR, msg, null, null);
249 }
250
251 public void error(String format, Object arg) {
252 recordEvent(Level.ERROR, format, new Object[] { arg }, null);
253
254 }
255
256 public void error(String format, Object arg1, Object arg2) {
257 recordEvent(Level.ERROR, format, new Object[] { arg1, arg2 }, null);
258
259 }
260
261 public void error(String format, Object... arguments) {
262 recordEvent(Level.ERROR, format, arguments, null);
263
264 }
265
266 public void error(String msg, Throwable t) {
267 recordEvent(Level.ERROR, msg, null, t);
268 }
269
270 public boolean isErrorEnabled(Marker marker) {
271 return true;
272 }
273
274 public void error(Marker marker, String msg) {
275 recordEvent(Level.ERROR, marker, msg, null, null);
276
277 }
278
279 public void error(Marker marker, String format, Object arg) {
280 recordEvent(Level.ERROR, marker, format, new Object[] { arg }, null);
281
282 }
283
284 public void error(Marker marker, String format, Object arg1, Object arg2) {
285 recordEvent(Level.ERROR, marker, format, new Object[] { arg1, arg2 }, null);
286 }
287
288 public void error(Marker marker, String format, Object... arguments) {
289 recordEvent(Level.ERROR, marker, format, arguments, null);
290 }
291
292 public void error(Marker marker, String msg, Throwable t) {
293 recordEvent(Level.ERROR, marker, msg, null, t);
294 }
295
296 }