/**
  * This method implements LocationAwareLogger.log
  *
  * <p>The caller passes in it's own Fully Qualified Class Name (fqcn).
  *
  * @param marker
  * @param fqcn the fully qualified class name (FQCN) of the <b>caller</b>
  * @param level Integer representation of the log level as defined in LocationAwareLogger
  * @param message the message as a format string
  * @param argArray an array of arguments to use in the message format string
  * @param t the throwable to log
  */
 public void log(
     Marker marker, String fqcn, int level, String message, Object[] argArray, Throwable t) {
   switch (level) {
     case (TRACE_INT):
       if (m_delegate.isTraceEnabled()) {
         FormattingTuple tuple = MessageFormatter.arrayFormat(message, argArray);
         m_delegate.trace(tuple.getMessage(), t, fqcn);
       }
       break;
     case (DEBUG_INT):
       if (m_delegate.isDebugEnabled()) {
         FormattingTuple tuple = MessageFormatter.arrayFormat(message, argArray);
         m_delegate.debug(tuple.getMessage(), t, fqcn);
       }
       break;
     case (INFO_INT):
       if (m_delegate.isInfoEnabled()) {
         FormattingTuple tuple = MessageFormatter.arrayFormat(message, argArray);
         m_delegate.inform(tuple.getMessage(), t, fqcn);
       }
       break;
     case (WARN_INT):
       if (m_delegate.isWarnEnabled()) {
         FormattingTuple tuple = MessageFormatter.arrayFormat(message, argArray);
         m_delegate.warn(tuple.getMessage(), t, fqcn);
       }
       break;
     case (ERROR_INT):
       if (m_delegate.isErrorEnabled()) {
         FormattingTuple tuple = MessageFormatter.arrayFormat(message, argArray);
         m_delegate.error(tuple.getMessage(), t, fqcn);
       }
       break;
     default:
       break;
   }
 }
 /**
  * This method is similar to {@link #error(String, Throwable)} method except that the marker data
  * is also taken into consideration.
  *
  * @param marker the marker data specific to this log statement
  * @param msg the message accompanying the exception
  * @param t the exception (throwable) to log
  */
 public void error(Marker marker, String msg, Throwable t) {
   if (m_delegate.isErrorEnabled()) {
     m_delegate.error(msg, t);
   }
 }
 /**
  * This method is similar to {@link #error(String, Object[])} method except that the marker data
  * is also taken into consideration.
  *
  * @param marker the marker data specific to this log statement
  * @param format the format string
  * @param argArray an array of arguments
  */
 public void error(Marker marker, String format, Object[] argArray) {
   if (m_delegate.isErrorEnabled()) {
     FormattingTuple tuple = MessageFormatter.arrayFormat(format, argArray);
     m_delegate.error(tuple.getMessage(), tuple.getThrowable());
   }
 }
 /**
  * Log a message with the specific Marker at the ERROR level.
  *
  * @param marker The marker specific to this log statement
  * @param msg the message string to be logged
  */
 public void error(Marker marker, String msg) {
   if (m_delegate.isErrorEnabled()) {
     m_delegate.error(msg, null);
   }
 }
 /**
  * Similar to {@link #isErrorEnabled()} method except that the marker data is also taken into
  * consideration.
  *
  * @param marker The marker data to take into consideration
  */
 public boolean isErrorEnabled(Marker marker) {
   return m_delegate.isErrorEnabled();
 }
 /**
  * Log a message at the ERROR level according to the specified format and arguments.
  *
  * <p>This form avoids superfluous object creation when the logger is disabled for the ERROR
  * level.
  *
  * @param format the format string
  * @param arg1 the first argument
  * @param arg2 the second argument
  */
 public void error(String format, Object arg1, Object arg2) {
   if (m_delegate.isErrorEnabled()) {
     FormattingTuple tuple = MessageFormatter.format(format, arg1, arg2);
     m_delegate.error(tuple.getMessage(), tuple.getThrowable());
   }
 }