001package org.slf4j.event;
002
003import java.util.Queue;
004
005import org.slf4j.Logger;
006import org.slf4j.Marker;
007import org.slf4j.helpers.SubstituteLogger;
008
009public class EventRecodingLogger implements Logger {
010
011    String name;
012    SubstituteLogger logger;
013    Queue<SubstituteLoggingEvent> eventQueue;
014
015    public EventRecodingLogger(SubstituteLogger logger, Queue<SubstituteLoggingEvent> eventQueue) {
016        this.logger = logger;
017        this.name = logger.getName();
018        this.eventQueue = eventQueue;
019    }
020
021    public String getName() {
022        return name;
023    }
024
025    private void recordEvent(Level level, String msg, Object[] args, Throwable throwable) {
026        recordEvent(level, null, msg, args, throwable);
027    }
028
029    private void recordEvent(Level level, Marker marker, String msg, Object[] args, Throwable throwable) {
030        // System.out.println("recording logger:"+name+", msg:"+msg);
031        SubstituteLoggingEvent loggingEvent = new SubstituteLoggingEvent();
032        loggingEvent.setTimeStamp(System.currentTimeMillis());
033        loggingEvent.setLevel(level);
034        loggingEvent.setLogger(logger);
035        loggingEvent.setLoggerName(name);
036        loggingEvent.setMarker(marker);
037        loggingEvent.setMessage(msg);
038        loggingEvent.setArgumentArray(args);
039        loggingEvent.setThrowable(throwable);
040        loggingEvent.setThreadName(Thread.currentThread().getName());
041        eventQueue.add(loggingEvent);
042    }
043
044    public boolean isTraceEnabled() {
045        return true;
046    }
047
048    public void trace(String msg) {
049        recordEvent(Level.TRACE, msg, null, null);
050    }
051
052    public void trace(String format, Object arg) {
053        recordEvent(Level.TRACE, format, new Object[] { arg }, null);
054    }
055
056    public void trace(String format, Object arg1, Object arg2) {
057        recordEvent(Level.TRACE, format, new Object[] { arg1, arg2 }, null);
058    }
059
060    public void trace(String format, Object... arguments) {
061        recordEvent(Level.TRACE, format, arguments, null);
062    }
063
064    public void trace(String msg, Throwable t) {
065        recordEvent(Level.TRACE, msg, null, t);
066    }
067
068    public boolean isTraceEnabled(Marker marker) {
069        return true;
070    }
071
072    public void trace(Marker marker, String msg) {
073        recordEvent(Level.TRACE, marker, msg, null, null);
074
075    }
076
077    public void trace(Marker marker, String format, Object arg) {
078        recordEvent(Level.TRACE, marker, format, new Object[] { arg }, null);
079    }
080
081    public void trace(Marker marker, String format, Object arg1, Object arg2) {
082        recordEvent(Level.TRACE, marker, format, new Object[] { arg1, arg2 }, null);
083    }
084
085    public void trace(Marker marker, String format, Object... argArray) {
086        recordEvent(Level.TRACE, marker, format, argArray, null);
087
088    }
089
090    public void trace(Marker marker, String msg, Throwable t) {
091        recordEvent(Level.TRACE, marker, msg, null, t);
092    }
093
094    public boolean isDebugEnabled() {
095        return true;
096    }
097
098    public void debug(String msg) {
099        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}