1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  package org.slf4j.helpers;
26  
27  import java.io.ObjectStreamException;
28  import java.io.Serializable;
29  
30  import org.slf4j.Logger;
31  import org.slf4j.LoggerFactory;
32  import org.slf4j.Marker;
33  import org.slf4j.event.Level;
34  
35  
36  
37  
38  
39  
40  
41  
42  public abstract class AbstractLogger implements Logger, Serializable {
43  
44      private static final long serialVersionUID = -2529255052481744503L;
45  
46      protected String name;
47  
48      public String getName() {
49          return name;
50      }
51  
52      
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66      protected Object readResolve() throws ObjectStreamException {
67          
68          
69          return LoggerFactory.getLogger(getName());
70      }
71  
72      @Override
73      public void trace(String msg) {
74          if (isTraceEnabled()) {
75              handle_0ArgsCall(Level.TRACE, null, msg, null);
76          }
77      }
78  
79      @Override
80      public void trace(String format, Object arg) {
81          if (isTraceEnabled()) {
82              handle_1ArgsCall(Level.TRACE, null, format, arg);
83          }
84      }
85  
86      @Override
87      public void trace(String format, Object arg1, Object arg2) {
88          if (isTraceEnabled()) {
89              handle2ArgsCall(Level.TRACE, null, format, arg1, arg2);
90          }
91      }
92  
93      @Override
94      public void trace(String format, Object... arguments) {
95          if (isTraceEnabled()) {
96              handleArgArrayCall(Level.TRACE, null, format, arguments);
97          }
98      }
99  
100     @Override
101     public void trace(String msg, Throwable t) {
102         if (isTraceEnabled()) {
103             handle_0ArgsCall(Level.TRACE, null, msg, t);
104         }
105     }
106 
107     @Override
108     public void trace(Marker marker, String msg) {
109         if (isTraceEnabled(marker)) {
110             handle_0ArgsCall(Level.TRACE, marker, msg, null);
111         }
112     }
113 
114     @Override
115     public void trace(Marker marker, String format, Object arg) {
116         if (isTraceEnabled(marker)) {
117             handle_1ArgsCall(Level.TRACE, marker, format, arg);
118         }
119     }
120 
121     @Override
122     public void trace(Marker marker, String format, Object arg1, Object arg2) {
123         if (isTraceEnabled(marker)) {
124             handle2ArgsCall(Level.TRACE, marker, format, arg1, arg2);
125         }
126     }
127 
128     @Override
129     public void trace(Marker marker, String format, Object... argArray) {
130         if (isTraceEnabled(marker)) {
131             handleArgArrayCall(Level.TRACE, marker, format, argArray);
132         }
133     }
134 
135     public void trace(Marker marker, String msg, Throwable t) {
136         if (isTraceEnabled(marker)) {
137             handle_0ArgsCall(Level.TRACE, marker, msg, t);
138         }
139     }
140 
141     public void debug(String msg) {
142         if (isDebugEnabled()) {
143             handle_0ArgsCall(Level.DEBUG, null, msg, null);
144         }
145     }
146 
147     public void debug(String format, Object arg) {
148         if (isDebugEnabled()) {
149             handle_1ArgsCall(Level.DEBUG, null, format, arg);
150         }
151     }
152 
153     public void debug(String format, Object arg1, Object arg2) {
154         if (isDebugEnabled()) {
155             handle2ArgsCall(Level.DEBUG, null, format, arg1, arg2);
156         }
157     }
158 
159     public void debug(String format, Object... arguments) {
160         if (isDebugEnabled()) {
161             handleArgArrayCall(Level.DEBUG, null, format, arguments);
162         }
163     }
164 
165     public void debug(String msg, Throwable t) {
166         if (isDebugEnabled()) {
167             handle_0ArgsCall(Level.DEBUG, null, msg, t);
168         }
169     }
170 
171     public void debug(Marker marker, String msg) {
172         if (isDebugEnabled(marker)) {
173             handle_0ArgsCall(Level.DEBUG, marker, msg, null);
174         }
175     }
176 
177     public void debug(Marker marker, String format, Object arg) {
178         if (isDebugEnabled(marker)) {
179             handle_1ArgsCall(Level.DEBUG, marker, format, arg);
180         }
181     }
182 
183     public void debug(Marker marker, String format, Object arg1, Object arg2) {
184         if (isDebugEnabled(marker)) {
185             handle2ArgsCall(Level.DEBUG, marker, format, arg1, arg2);
186         }
187     }
188 
189     public void debug(Marker marker, String format, Object... arguments) {
190         if (isDebugEnabled(marker)) {
191             handleArgArrayCall(Level.DEBUG, marker, format, arguments);
192         }
193     }
194 
195     public void debug(Marker marker, String msg, Throwable t) {
196         if (isDebugEnabled(marker)) {
197             handle_0ArgsCall(Level.DEBUG, marker, msg, t);
198         }
199     }
200 
201     public void info(String msg) {
202         if (isInfoEnabled()) {
203             handle_0ArgsCall(Level.INFO, null, msg, null);
204         }
205     }
206 
207     public void info(String format, Object arg) {
208         if (isInfoEnabled()) {
209             handle_1ArgsCall(Level.INFO, null, format, arg);
210         }
211     }
212 
213     public void info(String format, Object arg1, Object arg2) {
214         if (isInfoEnabled()) {
215             handle2ArgsCall(Level.INFO, null, format, arg1, arg2);
216         }
217     }
218 
219     public void info(String format, Object... arguments) {
220         if (isInfoEnabled()) {
221             handleArgArrayCall(Level.INFO, null, format, arguments);
222         }
223     }
224 
225     public void info(String msg, Throwable t) {
226         if (isInfoEnabled()) {
227             handle_0ArgsCall(Level.INFO, null, msg, t);
228         }
229     }
230 
231     public void info(Marker marker, String msg) {
232         if (isInfoEnabled(marker)) {
233             handle_0ArgsCall(Level.INFO, marker, msg, null);
234         }
235     }
236 
237     public void info(Marker marker, String format, Object arg) {
238         if (isInfoEnabled(marker)) {
239             handle_1ArgsCall(Level.INFO, marker, format, arg);
240         }
241     }
242 
243     public void info(Marker marker, String format, Object arg1, Object arg2) {
244         if (isInfoEnabled(marker)) {
245             handle2ArgsCall(Level.INFO, marker, format, arg1, arg2);
246         }
247     }
248 
249     public void info(Marker marker, String format, Object... arguments) {
250         if (isInfoEnabled(marker)) {
251             handleArgArrayCall(Level.INFO, marker, format, arguments);
252         }
253     }
254 
255     public void info(Marker marker, String msg, Throwable t) {
256         if (isInfoEnabled(marker)) {
257             handle_0ArgsCall(Level.INFO, marker, msg, t);
258         }
259     }
260 
261     public void warn(String msg) {
262         if (isWarnEnabled()) {
263             handle_0ArgsCall(Level.WARN, null, msg, null);
264         }
265     }
266 
267     public void warn(String format, Object arg) {
268         if (isWarnEnabled()) {
269             handle_1ArgsCall(Level.WARN, null, format, arg);
270         }
271     }
272 
273     public void warn(String format, Object arg1, Object arg2) {
274         if (isWarnEnabled()) {
275             handle2ArgsCall(Level.WARN, null, format, arg1, arg2);
276         }
277     }
278 
279     public void warn(String format, Object... arguments) {
280         if (isWarnEnabled()) {
281             handleArgArrayCall(Level.WARN, null, format, arguments);
282         }
283     }
284 
285     public void warn(String msg, Throwable t) {
286         if (isWarnEnabled()) {
287             handle_0ArgsCall(Level.WARN, null, msg, t);
288         }
289     }
290 
291     public void warn(Marker marker, String msg) {
292         if (isWarnEnabled(marker)) {
293             handle_0ArgsCall(Level.WARN, marker, msg, null);
294         }
295     }
296 
297     public void warn(Marker marker, String format, Object arg) {
298         if (isWarnEnabled(marker)) {
299             handle_1ArgsCall(Level.WARN, marker, format, arg);
300         }
301     }
302 
303     public void warn(Marker marker, String format, Object arg1, Object arg2) {
304         if (isWarnEnabled(marker)) {
305             handle2ArgsCall(Level.WARN, marker, format, arg1, arg2);
306         }
307     }
308 
309     public void warn(Marker marker, String format, Object... arguments) {
310         if (isWarnEnabled(marker)) {
311             handleArgArrayCall(Level.WARN, marker, format, arguments);
312         }
313     }
314 
315     public void warn(Marker marker, String msg, Throwable t) {
316         if (isWarnEnabled(marker)) {
317             handle_0ArgsCall(Level.WARN, marker, msg, t);
318         }
319     }
320 
321     public void error(String msg) {
322         if (isErrorEnabled()) {
323             handle_0ArgsCall(Level.ERROR, null, msg, null);
324         }
325     }
326 
327     public void error(String format, Object arg) {
328         if (isErrorEnabled()) {
329             handle_1ArgsCall(Level.ERROR, null, format, arg);
330         }
331     }
332 
333     public void error(String format, Object arg1, Object arg2) {
334         if (isErrorEnabled()) {
335             handle2ArgsCall(Level.ERROR, null, format, arg1, arg2);
336         }
337     }
338 
339     public void error(String format, Object... arguments) {
340         if (isErrorEnabled()) {
341             handleArgArrayCall(Level.ERROR, null, format, arguments);
342         }
343     }
344 
345     public void error(String msg, Throwable t) {
346         if (isErrorEnabled()) {
347             handle_0ArgsCall(Level.ERROR, null, msg, t);
348         }
349     }
350 
351     public void error(Marker marker, String msg) {
352         if (isErrorEnabled(marker)) {
353             handle_0ArgsCall(Level.ERROR, marker, msg, null);
354         }
355     }
356 
357     public void error(Marker marker, String format, Object arg) {
358         if (isErrorEnabled(marker)) {
359             handle_1ArgsCall(Level.ERROR, marker, format, arg);
360         }
361     }
362 
363     public void error(Marker marker, String format, Object arg1, Object arg2) {
364         if (isErrorEnabled(marker)) {
365             handle2ArgsCall(Level.ERROR, marker, format, arg1, arg2);
366         }
367     }
368 
369     public void error(Marker marker, String format, Object... arguments) {
370         if (isErrorEnabled(marker)) {
371             handleArgArrayCall(Level.ERROR, marker, format, arguments);
372         }
373     }
374 
375     public void error(Marker marker, String msg, Throwable t) {
376         if (isErrorEnabled(marker)) {
377             handle_0ArgsCall(Level.ERROR, marker, msg, t);
378         }
379     }
380 
381     private void handle_0ArgsCall(Level level, Marker marker, String msg, Throwable t) {
382         handleNormalizedLoggingCall(level, marker, msg, null, t);
383     }
384 
385     private void handle_1ArgsCall(Level level, Marker marker, String msg, Object arg1) {
386         handleNormalizedLoggingCall(level, marker, msg, new Object[] { arg1 }, null);
387     }
388 
389     private void handle2ArgsCall(Level level, Marker marker, String msg, Object arg1, Object arg2) {
390         if (arg2 instanceof Throwable) {
391             handleNormalizedLoggingCall(level, marker, msg, new Object[] { arg1 }, (Throwable) arg2);
392         } else {
393             handleNormalizedLoggingCall(level, marker, msg, new Object[] { arg1, arg2 }, null);
394         }
395     }
396 
397     private void handleArgArrayCall(Level level, Marker marker, String msg, Object[] args) {
398         Throwable throwableCandidate = MessageFormatter.getThrowableCandidate(args);
399         if (throwableCandidate != null) {
400             Object[] trimmedCopy = MessageFormatter.trimmedCopy(args);
401             handleNormalizedLoggingCall(level, marker, msg, trimmedCopy, throwableCandidate);
402         } else {
403             handleNormalizedLoggingCall(level, marker, msg, args, null);
404         }
405     }
406 
407     abstract protected String getFullyQualifiedCallerName();
408 
409     
410 
411 
412 
413 
414 
415 
416 
417 
418 
419 
420 
421     abstract protected void handleNormalizedLoggingCall(Level level, Marker marker, String msg, Object[] arguments, Throwable throwable);
422 
423 }