View Javadoc

1   /**
2    * Copyright (c) 2004-2011 QOS.ch
3    * All rights reserved.
4    *
5    * Permission is hereby granted, free  of charge, to any person obtaining
6    * a  copy  of this  software  and  associated  documentation files  (the
7    * "Software"), to  deal in  the Software without  restriction, including
8    * without limitation  the rights to  use, copy, modify,  merge, publish,
9    * distribute,  sublicense, and/or sell  copies of  the Software,  and to
10   * permit persons to whom the Software  is furnished to do so, subject to
11   * the following conditions:
12   *
13   * The  above  copyright  notice  and  this permission  notice  shall  be
14   * included in all copies or substantial portions of the Software.
15   *
16   * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
17   * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
18   * MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
19   * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20   * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21   * OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
22   * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23   *
24   */
25  package org.slf4j.ext;
26  
27  import org.slf4j.Logger;
28  import org.slf4j.Marker;
29  import org.slf4j.helpers.FormattingTuple;
30  import org.slf4j.helpers.MessageFormatter;
31  import org.slf4j.spi.LocationAwareLogger;
32  
33  /**
34   * A helper class wrapping an {@link org.slf4j.Logger} instance preserving
35   * location information if the wrapped instance supports it.
36   * 
37   * @author Ralph Goers
38   * @author Ceki Gülcü
39   */
40  public class LoggerWrapper implements Logger {
41  
42      // To ensure consistency between two instances sharing the same name
43      // (homonyms)
44      // a LoggerWrapper should not contain any state beyond
45      // the Logger instance it wraps.
46      // Note that 'instanceofLAL' directly depends on Logger.
47      // fqcn depend on the caller, but its value would not be different
48      // between successive invocations of a factory class
49  
50      protected final Logger logger;
51      final String fqcn;
52      // is this logger instance a LocationAwareLogger
53      protected final boolean instanceofLAL;
54  
55      public LoggerWrapper(Logger logger, String fqcn) {
56          this.logger = logger;
57          this.fqcn = fqcn;
58          if (logger instanceof LocationAwareLogger) {
59              instanceofLAL = true;
60          } else {
61              instanceofLAL = false;
62          }
63      }
64  
65      /**
66       * Delegate to the appropriate method of the underlying logger.
67       */
68      public boolean isTraceEnabled() {
69          return logger.isTraceEnabled();
70      }
71  
72      /**
73       * Delegate to the appropriate method of the underlying logger.
74       */
75      public boolean isTraceEnabled(Marker marker) {
76          return logger.isTraceEnabled(marker);
77      }
78  
79      /**
80       * Delegate to the appropriate method of the underlying logger.
81       */
82      public void trace(String msg) {
83          if (!logger.isTraceEnabled())
84              return;
85  
86          if (instanceofLAL) {
87              ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.TRACE_INT, msg, null, null);
88          } else {
89              logger.trace(msg);
90          }
91      }
92  
93      /**
94       * Delegate to the appropriate method of the underlying logger.
95       */
96      public void trace(String format, Object arg) {
97          if (!logger.isTraceEnabled())
98              return;
99  
100         if (instanceofLAL) {
101             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
102             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.TRACE_INT, formattedMessage, new Object[] { arg }, null);
103         } else {
104             logger.trace(format, arg);
105         }
106     }
107 
108     /**
109      * Delegate to the appropriate method of the underlying logger.
110      */
111     public void trace(String format, Object arg1, Object arg2) {
112         if (!logger.isTraceEnabled())
113             return;
114 
115         if (instanceofLAL) {
116             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
117             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.TRACE_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
118         } else {
119             logger.trace(format, arg1, arg2);
120         }
121     }
122 
123     /**
124      * Delegate to the appropriate method of the underlying logger.
125      */
126     public void trace(String format, Object... args) {
127         if (!logger.isTraceEnabled())
128             return;
129 
130         if (instanceofLAL) {
131             String formattedMessage = MessageFormatter.arrayFormat(format, args).getMessage();
132             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.TRACE_INT, formattedMessage, args, null);
133         } else {
134             logger.trace(format, args);
135         }
136     }
137 
138     /**
139      * Delegate to the appropriate method of the underlying logger.
140      */
141     public void trace(String msg, Throwable t) {
142         if (!logger.isTraceEnabled())
143             return;
144 
145         if (instanceofLAL) {
146             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.TRACE_INT, msg, null, t);
147         } else {
148             logger.trace(msg, t);
149         }
150     }
151 
152     /**
153      * Delegate to the appropriate method of the underlying logger.
154      */
155     public void trace(Marker marker, String msg) {
156         if (!logger.isTraceEnabled(marker))
157             return;
158         if (instanceofLAL) {
159             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.TRACE_INT, msg, null, null);
160         } else {
161             logger.trace(marker, msg);
162         }
163     }
164 
165     /**
166      * Delegate to the appropriate method of the underlying logger.
167      */
168     public void trace(Marker marker, String format, Object arg) {
169         if (!logger.isTraceEnabled(marker))
170             return;
171         if (instanceofLAL) {
172             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
173             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.TRACE_INT, formattedMessage, new Object[] { arg }, null);
174         } else {
175             logger.trace(marker, format, arg);
176         }
177     }
178 
179     /**
180      * Delegate to the appropriate method of the underlying logger.
181      */
182     public void trace(Marker marker, String format, Object arg1, Object arg2) {
183         if (!logger.isTraceEnabled(marker))
184             return;
185         if (instanceofLAL) {
186             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
187             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.TRACE_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
188         } else {
189             logger.trace(marker, format, arg1, arg2);
190         }
191     }
192 
193     /**
194      * Delegate to the appropriate method of the underlying logger.
195      */
196     public void trace(Marker marker, String format, Object... args) {
197         if (!logger.isTraceEnabled(marker))
198             return;
199         if (instanceofLAL) {
200             String formattedMessage = MessageFormatter.arrayFormat(format, args).getMessage();
201             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.TRACE_INT, formattedMessage, args, null);
202         } else {
203             logger.trace(marker, format, args);
204         }
205     }
206 
207     /**
208      * Delegate to the appropriate method of the underlying logger.
209      */
210     public void trace(Marker marker, String msg, Throwable t) {
211         if (!logger.isTraceEnabled(marker))
212             return;
213         if (instanceofLAL) {
214             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.TRACE_INT, msg, null, t);
215         } else {
216             logger.trace(marker, msg, t);
217         }
218     }
219 
220     /**
221      * Delegate to the appropriate method of the underlying logger.
222      */
223     public boolean isDebugEnabled() {
224         return logger.isDebugEnabled();
225     }
226 
227     /**
228      * Delegate to the appropriate method of the underlying logger.
229      */
230     public boolean isDebugEnabled(Marker marker) {
231         return logger.isDebugEnabled(marker);
232     }
233 
234     /**
235      * Delegate to the appropriate method of the underlying logger.
236      */
237     public void debug(String msg) {
238         if (!logger.isDebugEnabled())
239             return;
240 
241         if (instanceofLAL) {
242             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.DEBUG_INT, msg, null, null);
243         } else {
244             logger.debug(msg);
245         }
246     }
247 
248     /**
249      * Delegate to the appropriate method of the underlying logger.
250      */
251     public void debug(String format, Object arg) {
252         if (!logger.isDebugEnabled())
253             return;
254 
255         if (instanceofLAL) {
256             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
257             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.DEBUG_INT, formattedMessage, new Object[] { arg }, null);
258         } else {
259             logger.debug(format, arg);
260         }
261     }
262 
263     /**
264      * Delegate to the appropriate method of the underlying logger.
265      */
266     public void debug(String format, Object arg1, Object arg2) {
267         if (!logger.isDebugEnabled())
268             return;
269 
270         if (instanceofLAL) {
271             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
272             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.DEBUG_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
273         } else {
274             logger.debug(format, arg1, arg2);
275         }
276     }
277 
278     /**
279      * Delegate to the appropriate method of the underlying logger.
280      */
281     public void debug(String format, Object... argArray) {
282         if (!logger.isDebugEnabled())
283             return;
284 
285         if (instanceofLAL) {
286             FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray);
287             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.DEBUG_INT, ft.getMessage(), ft.getArgArray(), ft.getThrowable());
288         } else {
289             logger.debug(format, argArray);
290         }
291     }
292 
293     /**
294      * Delegate to the appropriate method of the underlying logger.
295      */
296     public void debug(String msg, Throwable t) {
297         if (!logger.isDebugEnabled())
298             return;
299 
300         if (instanceofLAL) {
301             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.DEBUG_INT, msg, null, t);
302         } else {
303             logger.debug(msg, t);
304         }
305     }
306 
307     /**
308      * Delegate to the appropriate method of the underlying logger.
309      */
310     public void debug(Marker marker, String msg) {
311         if (!logger.isDebugEnabled(marker))
312             return;
313         if (instanceofLAL) {
314             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.DEBUG_INT, msg, null, null);
315         } else {
316             logger.debug(marker, msg);
317         }
318     }
319 
320     /**
321      * Delegate to the appropriate method of the underlying logger.
322      */
323     public void debug(Marker marker, String format, Object arg) {
324         if (!logger.isDebugEnabled(marker))
325             return;
326         if (instanceofLAL) {
327             FormattingTuple ft = MessageFormatter.format(format, arg);
328             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.DEBUG_INT, ft.getMessage(), ft.getArgArray(), ft.getThrowable());
329         } else {
330             logger.debug(marker, format, arg);
331         }
332     }
333 
334     /**
335      * Delegate to the appropriate method of the underlying logger.
336      */
337     public void debug(Marker marker, String format, Object arg1, Object arg2) {
338         if (!logger.isDebugEnabled(marker))
339             return;
340         if (instanceofLAL) {
341             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
342             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.DEBUG_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
343         } else {
344             logger.debug(marker, format, arg1, arg2);
345         }
346     }
347 
348     /**
349      * Delegate to the appropriate method of the underlying logger.
350      */
351     public void debug(Marker marker, String format, Object... argArray) {
352         if (!logger.isDebugEnabled(marker))
353             return;
354         if (instanceofLAL) {
355 
356             FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray);
357             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.DEBUG_INT, ft.getMessage(), argArray, ft.getThrowable());
358         } else {
359             logger.debug(marker, format, argArray);
360         }
361     }
362 
363     /**
364      * Delegate to the appropriate method of the underlying logger.
365      */
366     public void debug(Marker marker, String msg, Throwable t) {
367         if (!logger.isDebugEnabled(marker))
368             return;
369         if (instanceofLAL) {
370             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.DEBUG_INT, msg, null, t);
371         } else {
372             logger.debug(marker, msg, t);
373         }
374     }
375 
376     /**
377      * Delegate to the appropriate method of the underlying logger.
378      */
379     public boolean isInfoEnabled() {
380         return logger.isInfoEnabled();
381     }
382 
383     /**
384      * Delegate to the appropriate method of the underlying logger.
385      */
386     public boolean isInfoEnabled(Marker marker) {
387         return logger.isInfoEnabled(marker);
388     }
389 
390     /**
391      * Delegate to the appropriate method of the underlying logger.
392      */
393     public void info(String msg) {
394         if (!logger.isInfoEnabled())
395             return;
396 
397         if (instanceofLAL) {
398             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.INFO_INT, msg, null, null);
399         } else {
400             logger.info(msg);
401         }
402     }
403 
404     /**
405      * Delegate to the appropriate method of the underlying logger.
406      */
407     public void info(String format, Object arg) {
408         if (!logger.isInfoEnabled())
409             return;
410 
411         if (instanceofLAL) {
412             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
413             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.INFO_INT, formattedMessage, new Object[] { arg }, null);
414         } else {
415             logger.info(format, arg);
416         }
417     }
418 
419     /**
420      * Delegate to the appropriate method of the underlying logger.
421      */
422     public void info(String format, Object arg1, Object arg2) {
423         if (!logger.isInfoEnabled())
424             return;
425 
426         if (instanceofLAL) {
427             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
428             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.INFO_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
429         } else {
430             logger.info(format, arg1, arg2);
431         }
432     }
433 
434     /**
435      * Delegate to the appropriate method of the underlying logger.
436      */
437     public void info(String format, Object... args) {
438         if (!logger.isInfoEnabled())
439             return;
440 
441         if (instanceofLAL) {
442             String formattedMessage = MessageFormatter.arrayFormat(format, args).getMessage();
443             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.INFO_INT, formattedMessage, args, null);
444         } else {
445             logger.info(format, args);
446         }
447     }
448 
449     /**
450      * Delegate to the appropriate method of the underlying logger.
451      */
452     public void info(String msg, Throwable t) {
453         if (!logger.isInfoEnabled())
454             return;
455 
456         if (instanceofLAL) {
457             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.INFO_INT, msg, null, t);
458         } else {
459             logger.info(msg, t);
460         }
461     }
462 
463     /**
464      * Delegate to the appropriate method of the underlying logger.
465      */
466     public void info(Marker marker, String msg) {
467         if (!logger.isInfoEnabled(marker))
468             return;
469         if (instanceofLAL) {
470             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.INFO_INT, msg, null, null);
471         } else {
472             logger.info(marker, msg);
473         }
474     }
475 
476     /**
477      * Delegate to the appropriate method of the underlying logger.
478      */
479     public void info(Marker marker, String format, Object arg) {
480         if (!logger.isInfoEnabled(marker))
481             return;
482         if (instanceofLAL) {
483             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
484             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.INFO_INT, formattedMessage, new Object[] { arg }, null);
485         } else {
486             logger.info(marker, format, arg);
487         }
488     }
489 
490     /**
491      * Delegate to the appropriate method of the underlying logger.
492      */
493     public void info(Marker marker, String format, Object arg1, Object arg2) {
494         if (!logger.isInfoEnabled(marker))
495             return;
496         if (instanceofLAL) {
497             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
498             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.INFO_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
499         } else {
500             logger.info(marker, format, arg1, arg2);
501         }
502     }
503 
504     /**
505      * Delegate to the appropriate method of the underlying logger.
506      */
507     public void info(Marker marker, String format, Object... args) {
508         if (!logger.isInfoEnabled(marker))
509             return;
510         if (instanceofLAL) {
511             String formattedMessage = MessageFormatter.arrayFormat(format, args).getMessage();
512             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.INFO_INT, formattedMessage, args, null);
513         } else {
514             logger.info(marker, format, args);
515         }
516     }
517 
518     /**
519      * Delegate to the appropriate method of the underlying logger.
520      */
521     public void info(Marker marker, String msg, Throwable t) {
522         if (!logger.isInfoEnabled(marker))
523             return;
524         if (instanceofLAL) {
525             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.INFO_INT, msg, null, t);
526         } else {
527             logger.info(marker, msg, t);
528         }
529     }
530 
531     public boolean isWarnEnabled() {
532         return logger.isWarnEnabled();
533     }
534 
535     /**
536      * Delegate to the appropriate method of the underlying logger.
537      */
538     public boolean isWarnEnabled(Marker marker) {
539         return logger.isWarnEnabled(marker);
540     }
541 
542     /**
543      * Delegate to the appropriate method of the underlying logger.
544      */
545     public void warn(String msg) {
546         if (!logger.isWarnEnabled())
547             return;
548 
549         if (instanceofLAL) {
550             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.WARN_INT, msg, null, null);
551         } else {
552             logger.warn(msg);
553         }
554     }
555 
556     /**
557      * Delegate to the appropriate method of the underlying logger.
558      */
559     public void warn(String format, Object arg) {
560         if (!logger.isWarnEnabled())
561             return;
562 
563         if (instanceofLAL) {
564             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
565             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.WARN_INT, formattedMessage, new Object[] { arg }, null);
566         } else {
567             logger.warn(format, arg);
568         }
569     }
570 
571     /**
572      * Delegate to the appropriate method of the underlying logger.
573      */
574     public void warn(String format, Object arg1, Object arg2) {
575         if (!logger.isWarnEnabled())
576             return;
577 
578         if (instanceofLAL) {
579             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
580             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.WARN_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
581         } else {
582             logger.warn(format, arg1, arg2);
583         }
584     }
585 
586     /**
587      * Delegate to the appropriate method of the underlying logger.
588      */
589     public void warn(String format, Object... args) {
590         if (!logger.isWarnEnabled())
591             return;
592 
593         if (instanceofLAL) {
594             String formattedMessage = MessageFormatter.arrayFormat(format, args).getMessage();
595             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.WARN_INT, formattedMessage, args, null);
596         } else {
597             logger.warn(format, args);
598         }
599     }
600 
601     /**
602      * Delegate to the appropriate method of the underlying logger.
603      */
604     public void warn(String msg, Throwable t) {
605         if (!logger.isWarnEnabled())
606             return;
607 
608         if (instanceofLAL) {
609             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.WARN_INT, msg, null, t);
610         } else {
611             logger.warn(msg, t);
612         }
613     }
614 
615     /**
616      * Delegate to the appropriate method of the underlying logger.
617      */
618     public void warn(Marker marker, String msg) {
619         if (!logger.isWarnEnabled(marker))
620             return;
621         if (instanceofLAL) {
622             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.WARN_INT, msg, null, null);
623         } else {
624             logger.warn(marker, msg);
625         }
626     }
627 
628     /**
629      * Delegate to the appropriate method of the underlying logger.
630      */
631     public void warn(Marker marker, String format, Object arg) {
632         if (!logger.isWarnEnabled(marker))
633             return;
634         if (instanceofLAL) {
635             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
636             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.WARN_INT, formattedMessage, new Object[] { arg }, null);
637         } else {
638             logger.warn(marker, format, arg);
639         }
640     }
641 
642     /**
643      * Delegate to the appropriate method of the underlying logger.
644      */
645     public void warn(Marker marker, String format, Object arg1, Object arg2) {
646         if (!logger.isWarnEnabled(marker))
647             return;
648         if (instanceofLAL) {
649             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
650             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.WARN_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
651         } else {
652             logger.warn(marker, format, arg1, arg2);
653         }
654     }
655 
656     /**
657      * Delegate to the appropriate method of the underlying logger.
658      */
659     public void warn(Marker marker, String format, Object... args) {
660         if (!logger.isWarnEnabled(marker))
661             return;
662         if (instanceofLAL) {
663             String formattedMessage = MessageFormatter.arrayFormat(format, args).getMessage();
664             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.WARN_INT, formattedMessage, args, null);
665         } else {
666             logger.warn(marker, format, args);
667         }
668     }
669 
670     /**
671      * Delegate to the appropriate method of the underlying logger.
672      */
673     public void warn(Marker marker, String msg, Throwable t) {
674         if (!logger.isWarnEnabled(marker))
675             return;
676         if (instanceofLAL) {
677             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.WARN_INT, msg, null, t);
678         } else {
679             logger.warn(marker, msg, t);
680         }
681     }
682 
683     /**
684      * Delegate to the appropriate method of the underlying logger.
685      */
686     public boolean isErrorEnabled() {
687         return logger.isErrorEnabled();
688     }
689 
690     /**
691      * Delegate to the appropriate method of the underlying logger.
692      */
693     public boolean isErrorEnabled(Marker marker) {
694         return logger.isErrorEnabled(marker);
695     }
696 
697     /**
698      * Delegate to the appropriate method of the underlying logger.
699      */
700     public void error(String msg) {
701         if (!logger.isErrorEnabled())
702             return;
703 
704         if (instanceofLAL) {
705             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.ERROR_INT, msg, null, null);
706         } else {
707             logger.error(msg);
708         }
709     }
710 
711     /**
712      * Delegate to the appropriate method of the underlying logger.
713      */
714     public void error(String format, Object arg) {
715         if (!logger.isErrorEnabled())
716             return;
717 
718         if (instanceofLAL) {
719             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
720             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.ERROR_INT, formattedMessage, new Object[] { arg }, null);
721         } else {
722             logger.error(format, arg);
723         }
724     }
725 
726     /**
727      * Delegate to the appropriate method of the underlying logger.
728      */
729     public void error(String format, Object arg1, Object arg2) {
730         if (!logger.isErrorEnabled())
731             return;
732 
733         if (instanceofLAL) {
734             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
735             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.ERROR_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
736         } else {
737             logger.error(format, arg1, arg2);
738         }
739     }
740 
741     /**
742      * Delegate to the appropriate method of the underlying logger.
743      */
744     public void error(String format, Object... args) {
745         if (!logger.isErrorEnabled())
746             return;
747 
748         if (instanceofLAL) {
749             String formattedMessage = MessageFormatter.arrayFormat(format, args).getMessage();
750             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.ERROR_INT, formattedMessage, args, null);
751         } else {
752             logger.error(format, args);
753         }
754     }
755 
756     /**
757      * Delegate to the appropriate method of the underlying logger.
758      */
759     public void error(String msg, Throwable t) {
760         if (!logger.isErrorEnabled())
761             return;
762 
763         if (instanceofLAL) {
764             ((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.ERROR_INT, msg, null, t);
765         } else {
766             logger.error(msg, t);
767         }
768     }
769 
770     /**
771      * Delegate to the appropriate method of the underlying logger.
772      */
773     public void error(Marker marker, String msg) {
774         if (!logger.isErrorEnabled(marker))
775             return;
776         if (instanceofLAL) {
777             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.ERROR_INT, msg, null, null);
778         } else {
779             logger.error(marker, msg);
780         }
781     }
782 
783     /**
784      * Delegate to the appropriate method of the underlying logger.
785      */
786     public void error(Marker marker, String format, Object arg) {
787         if (!logger.isErrorEnabled(marker))
788             return;
789         if (instanceofLAL) {
790             String formattedMessage = MessageFormatter.format(format, arg).getMessage();
791             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.ERROR_INT, formattedMessage, new Object[] { arg }, null);
792         } else {
793             logger.error(marker, format, arg);
794         }
795     }
796 
797     /**
798      * Delegate to the appropriate method of the underlying logger.
799      */
800     public void error(Marker marker, String format, Object arg1, Object arg2) {
801         if (!logger.isErrorEnabled(marker))
802             return;
803         if (instanceofLAL) {
804             String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
805             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.ERROR_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
806         } else {
807             logger.error(marker, format, arg1, arg2);
808         }
809     }
810 
811     /**
812      * Delegate to the appropriate method of the underlying logger.
813      */
814     public void error(Marker marker, String format, Object... args) {
815         if (!logger.isErrorEnabled(marker))
816             return;
817         if (instanceofLAL) {
818             String formattedMessage = MessageFormatter.arrayFormat(format, args).getMessage();
819             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.ERROR_INT, formattedMessage, args, null);
820         } else {
821             logger.error(marker, format, args);
822         }
823     }
824 
825     /**
826      * Delegate to the appropriate method of the underlying logger.
827      */
828     public void error(Marker marker, String msg, Throwable t) {
829         if (!logger.isErrorEnabled(marker))
830             return;
831         if (instanceofLAL) {
832             ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.ERROR_INT, msg, null, t);
833         } else {
834             logger.error(marker, msg, t);
835         }
836     }
837 
838     /**
839      * Delegate to the appropriate method of the underlying logger.
840      */
841     public String getName() {
842         return logger.getName();
843     }
844 }