You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2012/10/11 01:58:42 UTC

svn commit: r1396865 - /logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java

Author: ggregory
Date: Wed Oct 10 23:58:42 2012
New Revision: 1396865

URL: http://svn.apache.org/viewvc?rev=1396865&view=rev
Log:
Sort members.

Modified:
    logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java

Modified: logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java?rev=1396865&r1=1396864&r2=1396865&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java (original)
+++ logging/log4j/log4j2/trunk/api/src/main/java/org/apache/logging/log4j/Logger.java Wed Oct 10 23:58:42 2012
@@ -26,391 +26,433 @@ import org.apache.logging.log4j.message.
 public interface Logger {
 
   /**
-   * Logs entry to a method.
+   * Logs an exception or error that has been caught.
+   * @param level The logging Level.
+   * @param t The Throwable.
    */
-  void entry();
+  void catching(Level level, Throwable t);
 
   /**
-   * Logs entry to a method.
-   * @param params The parameters to the method.
-   * @doubt Use of varargs results in array creation which can be a substantial portion of no-op case.
-   * LogMF/LogSF provides several overrides to avoid vararg except in edge cases. (RG) LogMF
-   * and LogSF implement these in LogXF which calls logger.callAppenders. callAppenders is
-   * part of the implementation and cannot be used by the API. Adding more methods here
-   * and in AbstractLogger is sufficient.
+   * Logs an exception or error that has been caught.
+   * @param t The Throwable.
    */
-  void entry(Object... params);
+  void catching(Throwable t);
 
   /**
-   * Logs exit from a method.
+   * Logs a message with the specific Marker at the DEBUG level.
+   *
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
    */
-  void exit();
+  void debug(Marker marker, Message msg);
 
   /**
-   * Logs exiting from a method with the result. This may be coded as <br />
-   *     return logger.exit(myResult);
-   * @param <R> The type of the parameter and object being returned.
-   * @param result The result being returned from the method call.
-   * @return the result.
+   * Logs a message with the specific Marker at the DEBUG level.
+   *
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
+   * @param t      A Throwable or null.
    */
-  <R> R exit(R result);
+  void debug(Marker marker, Message msg, Throwable t);
 
   /**
-   * Logs an exception or error to be thrown. This may be coded as <br />
-   *    throw logger.throwing(myException);
+   * Logs a message object with the {@link Level#DEBUG DEBUG} level.
    *
-   * @param <T> the Throwable type.
-   * @param t The Throwable.
-   * @return the Throwable.
+   * @param marker the marker data specific to this log statement
+   * @param message the message object to log.
    */
-  <T extends Throwable> T throwing(T t);
+  void debug(Marker marker, Object message);
 
   /**
-   * Logs an exception or error to be thrown. This may be coded as <br />
-   *    throw logger.throwing(debug, myException);
-   * @param <T> the Throwable type.
-   * @param level The logging Level.
-   * @param t The Throwable.
-   * @return the Throwable.
+   * Logs a message at the {@link Level#DEBUG DEBUG} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   *
+   * @param marker the marker data specific to this log statement
+   * @param message the message to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  <T extends Throwable> T throwing(Level level, T t);
+  void debug(Marker marker, Object message, Throwable t);
 
   /**
-   * Logs an exception or error that has been caught.
-   * @param t The Throwable.
+   * Logs a message object with the {@link Level#DEBUG DEBUG} level.
+   *
+   * @param marker the marker data specific to this log statement
+   * @param message the message object to log.
    */
-  void catching(Throwable t);
+  void debug(Marker marker, String message);
 
   /**
-   * Logs an exception or error that has been caught.
-   * @param level The logging Level.
-   * @param t The Throwable.
+   * Logs a message with parameters at the {@link Level#DEBUG DEBUG} level.
+   *
+   * @param marker the marker data specific to this log statement
+   * @param message the message to log.
+   * @param params parameters to the message.
    */
-  void catching(Level level, Throwable t);
+  void debug(Marker marker, String message, Object... params);
 
   /**
-   * Logs a message object with the {@link Level#TRACE TRACE} level.
+   * Logs a message at the {@link Level#DEBUG DEBUG} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param message the message object to log.
+   * @param marker the marker data specific to this log statement
+   * @param message the message to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  void trace(String message);
+  void debug(Marker marker, String message, Throwable t);
 
   /**
-   * Logs a message object with the {@link Level#TRACE TRACE} level.
+   * Logs a message with the specific Marker at the DEBUG level.
+   *
+   * @param msg the message string to be logged
+   */
+  void debug(Message msg);
+
+  /**
+   * Logs a message with the specific Marker at the DEBUG level.
+   *
+   * @param msg the message string to be logged
+   * @param t   A Throwable or null.
+   */
+  void debug(Message msg, Throwable t);
+
+  /**
+   * Logs a message object with the {@link Level#DEBUG DEBUG} level.
    *
-   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
    */
-  void trace(Marker marker, String message);
+  void debug(Object message);
 
   /**
-   * Logs a message at the {@link Level#TRACE TRACE} level including the
+   * Logs a message at the {@link Level#DEBUG DEBUG} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
-   * <p/>
-   * <p>
-   * See {@link #debug(String)} form for more detailed information.
-   * </p>
    *
-   * @param message the message object to log.
+   * @param message the message to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void trace(String message, Throwable t);
+  void debug(Object message, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#TRACE TRACE} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
-   * <p/>
-   * <p>
-   * See {@link #debug(String)} form for more detailed information.
-   * </p>
+   * Logs a message object with the {@link Level#DEBUG DEBUG} level.
    *
-   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
+   */
+  void debug(String message);
+
+  /**
+   * Logs a message with parameters at the {@link Level#DEBUG DEBUG} level.
+   * @param message the message to log.
+   * @param params parameters to the message.
+   */
+  void debug(String message, Object... params);
+
+   /**
+   * Logs a message at the {@link Level#DEBUG DEBUG} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   *
+   * @param message the message to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void trace(Marker marker, String message, Throwable t);
+  void debug(String message, Throwable t);
 
   /**
-   * Logs a message object with the {@link Level#TRACE TRACE} level.
+   * Logs entry to a method.
+   */
+  void entry();
+
+  /**
+   * Logs entry to a method.
+   * @param params The parameters to the method.
+   * @doubt Use of varargs results in array creation which can be a substantial portion of no-op case.
+   * LogMF/LogSF provides several overrides to avoid vararg except in edge cases. (RG) LogMF
+   * and LogSF implement these in LogXF which calls logger.callAppenders. callAppenders is
+   * part of the implementation and cannot be used by the API. Adding more methods here
+   * and in AbstractLogger is sufficient.
+   */
+  void entry(Object... params);
+
+  /**
+   * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
    *
-   * @param message the message object to log.
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
    */
-  void trace(Object message);
+  void error(Marker marker, Message msg);
 
   /**
-   * Logs a message object with the {@link Level#TRACE TRACE} level.
+   * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
    *
    * @param marker the marker data specific to this log statement
-   * @param message the message object to log.
+   * @param msg    the message string to be logged
+   * @param t      A Throwable or null.
    */
-  void trace(Marker marker, Object message);
+  void error(Marker marker, Message msg, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#TRACE TRACE} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
-   * <p/>
-   * <p>
-   * See {@link #debug(String)} form for more detailed information.
-   * </p>
+   * Logs a message object with the {@link Level#ERROR ERROR} level.
    *
+   * @param marker the marker data specific to this log statement.
    * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
    */
-  void trace(Object message, Throwable t);
+  void error(Marker marker, Object message);
 
-   /**
-   * Logs a message at the {@link Level#TRACE TRACE} level including the
+  /**
+   * Logs a message at the {@link Level#ERROR ERROR} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
-   * <p/>
-   * <p>
-   * See {@link #debug(String)} form for more detailed information.
-   * </p>
    *
-   * @param marker the marker data specific to this log statement
+   * @param marker the marker data specific to this log statement.
    * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void trace(Marker marker, Object message, Throwable t);
+  void error(Marker marker, Object message, Throwable t);
 
   /**
-   * Logs a message with parameters at the {@link Level#TRACE TRACE} level.
-   * @param message the message to log.
-   * @param params parameters to the message.
+   * Logs a message object with the {@link Level#ERROR ERROR} level.
+   *
+   * @param marker the marker data specific to this log statement.
+   * @param message the message object to log.
    */
-  void trace(String message, Object... params);
+  void error(Marker marker, String message);
 
   /**
-   * Logs a message with parameters at the {@link Level#TRACE TRACE} level.
-   *
-   * @param marker the marker data specific to this log statement
+   * Logs a message with parameters at the {@link Level#ERROR ERROR} level.
+   * @param marker the marker data specific to this log statement.
    * @param message the message to log.
    * @param params parameters to the message.
-   */
-  void trace(Marker marker, String message, Object... params);
-
-  /**
-   * Checks whether this Logger is enabled for the {@link Level#TRACE TRACE} level.
    *
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         TRACE, <code>false</code> otherwise.
+   * @doubt Likely to misinterpret existing log4j client code that intended to call
+   * info(Object,Throwable). Incurs array creation expense on every call. (RG) I assume you
+   * meant error, not info. It isn't possible to be misinterpreted as the previous method
+   * is for that signature. Methods should be added to avoid varargs for 1, 2 or 3 parameters.
    */
-  boolean isTraceEnabled();
+  void error(Marker marker, String message, Object... params);
 
   /**
-   * Checks whether this Logger is enabled for the {@link Level#TRACE TRACE} level.
+   * Logs a message at the {@link Level#ERROR ERROR} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param marker The marker data specific to this log statement.
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         TRACE, <code>false</code> otherwise.
+   * @param marker the marker data specific to this log statement.
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  boolean isTraceEnabled(Marker marker);
+  void error(Marker marker, String message, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
+   * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
    *
    * @param msg the message string to be logged
    */
-  void trace(Message msg);
+  void error(Message msg);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
+   * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
    *
    * @param msg the message string to be logged
    * @param t   A Throwable or null.
    */
-  void trace(Message msg, Throwable t);
+  void error(Message msg, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
+   * Logs a message object with the {@link Level#ERROR ERROR} level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
+   * @param message the message object to log.
    */
-  void trace(Marker marker, Message msg);
+  void error(Object message);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
+   * Logs a message at the {@link Level#ERROR ERROR} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
-   * @param t      A Throwable or null.
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  void trace(Marker marker, Message msg, Throwable t);
+  void error(Object message, Throwable t);
 
   /**
-   * Logs a message object with the {@link Level#DEBUG DEBUG} level.
+   * Logs a message object with the {@link Level#ERROR ERROR} level.
    *
    * @param message the message object to log.
    */
-  void debug(String message);
+  void error(String message);
 
   /**
-   * Logs a message object with the {@link Level#DEBUG DEBUG} level.
+   * Logs a message with parameters at the {@link Level#ERROR ERROR} level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param message the message object to log.
+   * @param message the message to log.
+   * @param params parameters to the message.
+   *
+   * @doubt Likely to misinterpret existing log4j client code that intended to call
+   * info(Object,Throwable). Incurs array creation expense on every call. (RG) I assume you
+   * meant error, not info. It isn't possible to be misinterpreted as the previous method
+   * is for that signature. Methods should be added to avoid varargs for 1, 2 or 3 parameters.
    */
-  void debug(Marker marker, String message);
+  void error(String message, Object... params);
 
   /**
-   * Logs a message at the {@link Level#DEBUG DEBUG} level including the
+   * Logs a message at the {@link Level#ERROR ERROR} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param message the message to log.
+   * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void debug(String message, Throwable t);
+  void error(String message, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#DEBUG DEBUG} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
-   *
-   * @param marker the marker data specific to this log statement
-   * @param message the message to log.
-   * @param t       the exception to log, including its stack trace.
+   * Logs exit from a method.
    */
-  void debug(Marker marker, String message, Throwable t);
+  void exit();
 
   /**
-   * Logs a message object with the {@link Level#DEBUG DEBUG} level.
+   * Logs exiting from a method with the result. This may be coded as <br />
+   *     return logger.exit(myResult);
+   * @param <R> The type of the parameter and object being returned.
+   * @param result The result being returned from the method call.
+   * @return the result.
+   */
+  <R> R exit(R result);
+
+  /**
+   * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
    *
-   * @param message the message object to log.
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
    */
-  void debug(Object message);
+  void fatal(Marker marker, Message msg);
 
   /**
-   * Logs a message object with the {@link Level#DEBUG DEBUG} level.
+   * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
    *
    * @param marker the marker data specific to this log statement
-   * @param message the message object to log.
+   * @param msg    the message string to be logged
+   * @param t      A Throwable or null.
    */
-  void debug(Marker marker, Object message);
+  void fatal(Marker marker, Message msg, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#DEBUG DEBUG} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * Logs a message object with the {@link Level#FATAL FATAL} level.
    *
-   * @param message the message to log.
-   * @param t       the exception to log, including its stack trace.
+   * @param marker The marker data specific to this log statement.
+   * @param message the message object to log.
    */
-  void debug(Object message, Throwable t);
+  void fatal(Marker marker, Object message);
 
   /**
-   * Logs a message at the {@link Level#DEBUG DEBUG} level including the
+   * Logs a message at the {@link Level#FATAL FATAL} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param marker the marker data specific to this log statement
-   * @param message the message to log.
+   * @param marker The marker data specific to this log statement.
+   * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void debug(Marker marker, Object message, Throwable t);
+  void fatal(Marker marker, Object message, Throwable t);
 
   /**
-   * Logs a message with parameters at the {@link Level#DEBUG DEBUG} level.
-   * @param message the message to log.
-   * @param params parameters to the message.
+   * Logs a message object with the {@link Level#FATAL FATAL} level.
+   *
+   * @param marker The marker data specific to this log statement.
+   * @param message the message object to log.
    */
-  void debug(String message, Object... params);
+  void fatal(Marker marker, String message);
 
   /**
-   * Logs a message with parameters at the {@link Level#DEBUG DEBUG} level.
+   * Logs a message with parameters at the {@link Level#FATAL FATAL} level.
    *
-   * @param marker the marker data specific to this log statement
+   * @param marker The marker data specific to this log statement.
    * @param message the message to log.
    * @param params parameters to the message.
-   */
-  void debug(Marker marker, String message, Object... params);
-
-  /**
-   * Checks whether this Logger is enabled for the DEBUG Level.
    *
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         DEBUG, <code>false</code> otherwise.
+   * @doubt Likely to misinterpret existing log4j client code that intended to call
+   * info(Object,Throwable). Incurs array creation expense on every call.(RG) I assume you
+   * meant fatal, not info. It isn't possible to be misinterpreted as the previous method
+   * is for that signature. Methods should be added to avoid varargs for 1, 2 or 3 parameters.
    */
-  boolean isDebugEnabled();
+  void fatal(Marker marker, String message, Object... params);
 
   /**
-   * Checks whether this Logger is enabled for the DEBUG Level.
+   * Logs a message at the {@link Level#FATAL FATAL} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
    * @param marker The marker data specific to this log statement.
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         DEBUG, <code>false</code> otherwise.
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  boolean isDebugEnabled(Marker marker);
+  void fatal(Marker marker, String message, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the DEBUG level.
+   * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
    *
    * @param msg the message string to be logged
    */
-  void debug(Message msg);
+  void fatal(Message msg);
 
   /**
-   * Logs a message with the specific Marker at the DEBUG level.
+   * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
    *
    * @param msg the message string to be logged
    * @param t   A Throwable or null.
    */
-  void debug(Message msg, Throwable t);
+  void fatal(Message msg, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the DEBUG level.
+   * Logs a message object with the {@link Level#FATAL FATAL} level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
+   * @param message the message object to log.
    */
-  void debug(Marker marker, Message msg);
+  void fatal(Object message);
 
   /**
-   * Logs a message with the specific Marker at the DEBUG level.
+   * Logs a message at the {@link Level#FATAL FATAL} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
-   * @param t      A Throwable or null.
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  void debug(Marker marker, Message msg, Throwable t);
+  void fatal(Object message, Throwable t);
 
   /**
-   * Logs a message object with the {@link Level#INFO INFO} level.
+   * Logs a message object with the {@link Level#FATAL FATAL} level.
    *
    * @param message the message object to log.
    */
-  void info(String message);
+  void fatal(String message);
 
   /**
-   * Logs a message object with the {@link Level#INFO INFO} level.
+   * Logs a message with parameters at the {@link Level#FATAL FATAL} level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param message the message object to log.
+   * @param message the message to log.
+   * @param params parameters to the message.
+   *
+   * @doubt Likely to misinterpret existing log4j client code that intended to call
+   * info(Object,Throwable). Incurs array creation expense on every call.(RG) I assume you
+   * meant fatal, not info. It isn't possible to be misinterpreted as the previous method
+   * is for that signature. Methods should be added to avoid varargs for 1, 2 or 3 parameters.
    */
-  void info(Marker marker, String message);
+  void fatal(String message, Object... params);
 
   /**
-   * Logs a message at the {@link Level#INFO INFO} level including the
+   * Logs a message at the {@link Level#FATAL FATAL} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
    * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void info(String message, Throwable t);
+  void fatal(String message, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#INFO INFO} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * Logs a message with the specific Marker at the INFO level.
    *
    * @param marker the marker data specific to this log statement
-   * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
+   * @param msg    the message string to be logged
    */
-  void info(Marker marker, String message, Throwable t);
+  void info(Marker marker, Message msg);
 
   /**
-   * Logs a message object with the {@link Level#INFO INFO} level.
+   * Logs a message with the specific Marker at the INFO level.
    *
-   * @param message the message object to log.
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
+   * @param t      A Throwable or null.
    */
-  void info(Object message);
-
+  void info(Marker marker, Message msg, Throwable t);
   /**
    * Logs a message object with the {@link Level#INFO INFO} level.
    *
@@ -423,15 +465,6 @@ public interface Logger {
    * Logs a message at the {@link Level#INFO INFO} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
-   */
-  void info(Object message, Throwable t);
-
-  /**
-   * Logs a message at the {@link Level#INFO INFO} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
-   *
    * @param marker the marker data specific to this log statement
    * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
@@ -439,17 +472,12 @@ public interface Logger {
   void info(Marker marker, Object message, Throwable t);
 
   /**
-   * Logs a message with parameters at the {@link Level#INFO INFO} level.
-   *
-   * @param message the message to log.
-   * @param params parameters to the message.
+   * Logs a message object with the {@link Level#INFO INFO} level.
    *
-   * @doubt Likely to misinterpret existing log4j client code that intended to call
-   * info(Object,Throwable). Incurs array creation expense on every call. (RG) It isn't
-   * possible to be misinterpreted as the previous method is for that signature. Methods
-   * should be added to avoid varargs for 1, 2 or 3 parameters.
+   * @param marker the marker data specific to this log statement
+   * @param message the message object to log.
    */
-  void info(String message, Object... params);
+  void info(Marker marker, String message);
 
   /**
    * Logs a message with parameters at the {@link Level#INFO INFO} level.
@@ -464,22 +492,16 @@ public interface Logger {
    * should be added to avoid varargs for 1, 2 or 3 parameters.
    */
   void info(Marker marker, String message, Object... params);
-  /**
-   * Checks whether this Logger is enabled for the INFO Level.
-   *
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         INFO, <code>false</code> otherwise.
-   */
-  boolean isInfoEnabled();
 
   /**
-   * Checks whether this Logger is enabled for the INFO Level.
+   * Logs a message at the {@link Level#INFO INFO} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param marker The marker data specific to this log statement.
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         INFO, <code>false</code> otherwise.
+   * @param marker the marker data specific to this log statement
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  boolean isInfoEnabled(Marker marker);
+  void info(Marker marker, String message, Throwable t);
 
   /**
    * Logs a message with the specific Marker at the TRACE level.
@@ -497,449 +519,427 @@ public interface Logger {
   void info(Message msg, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the INFO level.
-   *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
-   */
-  void info(Marker marker, Message msg);
-
-  /**
-   * Logs a message with the specific Marker at the INFO level.
-   *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
-   * @param t      A Throwable or null.
-   */
-  void info(Marker marker, Message msg, Throwable t);
-
-  /**
-   * Logs a message object with the {@link Level#WARN WARN} level.
-   *
-   * @param message the message object to log.
-   */
-  void warn(String message);
-
-  /**
-   * Logs a message object with the {@link Level#WARN WARN} level.
+   * Logs a message object with the {@link Level#INFO INFO} level.
    *
-   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
    */
-  void warn(Marker marker, String message);
+  void info(Object message);
 
   /**
-   * Logs a message at the {@link Level#WARN WARN} level including the
+   * Logs a message at the {@link Level#INFO INFO} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
    * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void warn(String message, Throwable t);
+  void info(Object message, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#WARN WARN} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * Logs a message object with the {@link Level#INFO INFO} level.
    *
-   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
    */
-  void warn(Marker marker, String message, Throwable t);
+  void info(String message);
 
  /**
-   * Logs a message object with the {@link Level#WARN WARN} level.
+   * Logs a message with parameters at the {@link Level#INFO INFO} level.
    *
-   * @param message the message object to log.
-   */
-  void warn(Object message);
-
-  /**
-   * Logs a message object with the {@link Level#WARN WARN} level.
+   * @param message the message to log.
+   * @param params parameters to the message.
    *
-   * @param marker the marker data specific to this log statement
-   * @param message the message object to log.
+   * @doubt Likely to misinterpret existing log4j client code that intended to call
+   * info(Object,Throwable). Incurs array creation expense on every call. (RG) It isn't
+   * possible to be misinterpreted as the previous method is for that signature. Methods
+   * should be added to avoid varargs for 1, 2 or 3 parameters.
    */
-  void warn(Marker marker, Object message);
+  void info(String message, Object... params);
 
   /**
-   * Logs a message at the {@link Level#WARN WARN} level including the
+   * Logs a message at the {@link Level#INFO INFO} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
    * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void warn(Object message, Throwable t);
+  void info(String message, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#WARN WARN} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * Checks whether this Logger is enabled for the DEBUG Level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         DEBUG, <code>false</code> otherwise.
    */
-  void warn(Marker marker, Object message, Throwable t);
+  boolean isDebugEnabled();
 
   /**
-   * Logs a message with parameters at the {@link Level#WARN WARN} level.
-   * @param message the message to log.
-   * @param params parameters to the message.
-   * @doubt Likely to misinterpret existing log4j client code that intended to call
-   * info(Object,Throwable). Incurs array creation expense on every call. (RG) I assume you
-   * meant warn, not info. It isn't possible to be misinterpreted as the previous method
-   * is for that signature.Methods should be added to avoid varargs for 1, 2 or 3 parameters.
+   * Checks whether this Logger is enabled for the DEBUG Level.
+   *
+   * @param marker The marker data specific to this log statement.
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         DEBUG, <code>false</code> otherwise.
    */
-  void warn(String message, Object... params);
+  boolean isDebugEnabled(Marker marker);
 
   /**
-   * Logs a message with parameters at the {@link Level#WARN WARN} level.
+   * Checks whether this Logger is enabled for the {@link Level#ERROR ERROR} Level.
    *
-   * @param marker the marker data specific to this log statement.
-   * @param message the message to log.
-   * @param params parameters to the message.
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         {@link Level#ERROR ERROR}, <code>false</code> otherwise.
+   */
+  boolean isErrorEnabled();
+
+  /**
+   * Checks whether this Logger is enabled for the {@link Level#ERROR ERROR} Level.
    *
-   * @doubt Likely to misinterpret existing log4j client code that intended to call
-   * info(Object,Throwable). Incurs array creation expense on every call. (RG) I assume you
-   * meant warn, not info. It isn't possible to be misinterpreted as the previous method
-   * is for that signature.Methods should be added to avoid varargs for 1, 2 or 3 parameters.
+   * @param marker The marker data specific to this log statement.
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         {@link Level#ERROR ERROR}, <code>false</code> otherwise.
    */
-  void warn(Marker marker, String message, Object... params);
+  boolean isErrorEnabled(Marker marker);
 
   /**
-   * Checks whether this Logger is enabled for the {@link Level#WARN WARN} Level.
+   * Checks whether this Logger is enabled for the {@link Level#FATAL FATAL} Level.
    *
    * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         {@link Level#WARN WARN}, <code>false</code> otherwise.
+   *         {@link Level#FATAL FATAL}, <code>false</code> otherwise.
    */
-  boolean isWarnEnabled();
+  boolean isFatalEnabled();
 
   /**
-   * Checks whether this Logger is enabled for the {@link Level#WARN WARN} Level.
+   * Checks whether this Logger is enabled for the {@link Level#FATAL FATAL} Level.
    *
    * @param marker The marker data specific to this log statement.
    * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         {@link Level#WARN WARN}, <code>false</code> otherwise.
+   *         {@link Level#FATAL FATAL}, <code>false</code> otherwise.
    */
-  boolean isWarnEnabled(Marker marker);
+  boolean isFatalEnabled(Marker marker);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
+   * Checks whether this Logger is enabled for the INFO Level.
    *
-   * @param msg the message string to be logged
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         INFO, <code>false</code> otherwise.
    */
-  void warn(Message msg);
+  boolean isInfoEnabled();
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
+   * Checks whether this Logger is enabled for the INFO Level.
    *
-   * @param msg the message string to be logged
-   * @param t   A Throwable or null.
+   * @param marker The marker data specific to this log statement.
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         INFO, <code>false</code> otherwise.
    */
-  void warn(Message msg, Throwable t);
+  boolean isInfoEnabled(Marker marker);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
+   * Checks whether this Logger is enabled for the {@link Level#TRACE TRACE} level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         TRACE, <code>false</code> otherwise.
    */
-  void warn(Marker marker, Message msg);
+  boolean isTraceEnabled();
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
+   * Checks whether this Logger is enabled for the {@link Level#TRACE TRACE} level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
-   * @param t      A Throwable or null.
+   * @param marker The marker data specific to this log statement.
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         TRACE, <code>false</code> otherwise.
    */
-  void warn(Marker marker, Message msg, Throwable t);
+  boolean isTraceEnabled(Marker marker);
 
   /**
-   * Logs a message object with the {@link Level#ERROR ERROR} level.
+   * Checks whether this Logger is enabled for the {@link Level#WARN WARN} Level.
    *
-   * @param message the message object to log.
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         {@link Level#WARN WARN}, <code>false</code> otherwise.
    */
-  void error(String message);
+  boolean isWarnEnabled();
 
   /**
-   * Logs a message object with the {@link Level#ERROR ERROR} level.
+   * Checks whether this Logger is enabled for the {@link Level#WARN WARN} Level.
    *
-   * @param marker the marker data specific to this log statement.
-   * @param message the message object to log.
+   * @param marker The marker data specific to this log statement.
+   * @return boolean - <code>true</code> if this Logger is enabled for level
+   *         {@link Level#WARN WARN}, <code>false</code> otherwise.
    */
-  void error(Marker marker, String message);
+  boolean isWarnEnabled(Marker marker);
 
   /**
-   * Logs a message at the {@link Level#ERROR ERROR} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
-   *
-   * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
+   * Logs an exception or error to be thrown. This may be coded as <br />
+   *    throw logger.throwing(debug, myException);
+   * @param <T> the Throwable type.
+   * @param level The logging Level.
+   * @param t The Throwable.
+   * @return the Throwable.
    */
-  void error(String message, Throwable t);
+  <T extends Throwable> T throwing(Level level, T t);
 
   /**
-   * Logs a message at the {@link Level#ERROR ERROR} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * Logs an exception or error to be thrown. This may be coded as <br />
+   *    throw logger.throwing(myException);
    *
-   * @param marker the marker data specific to this log statement.
-   * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
+   * @param <T> the Throwable type.
+   * @param t The Throwable.
+   * @return the Throwable.
    */
-  void error(Marker marker, String message, Throwable t);
+  <T extends Throwable> T throwing(T t);
 
   /**
-   * Logs a message object with the {@link Level#ERROR ERROR} level.
+   * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
    *
-   * @param message the message object to log.
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
    */
-  void error(Object message);
+  void trace(Marker marker, Message msg);
 
   /**
-   * Logs a message object with the {@link Level#ERROR ERROR} level.
+   * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
    *
-   * @param marker the marker data specific to this log statement.
-   * @param message the message object to log.
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
+   * @param t      A Throwable or null.
    */
-  void error(Marker marker, Object message);
+  void trace(Marker marker, Message msg, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#ERROR ERROR} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * Logs a message object with the {@link Level#TRACE TRACE} level.
    *
+   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
    */
-  void error(Object message, Throwable t);
+  void trace(Marker marker, Object message);
 
   /**
-   * Logs a message at the {@link Level#ERROR ERROR} level including the
+   * Logs a message at the {@link Level#TRACE TRACE} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * <p/>
+   * <p>
+   * See {@link #debug(String)} form for more detailed information.
+   * </p>
    *
-   * @param marker the marker data specific to this log statement.
+   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void error(Marker marker, Object message, Throwable t);
+  void trace(Marker marker, Object message, Throwable t);
 
   /**
-   * Logs a message with parameters at the {@link Level#ERROR ERROR} level.
-   *
-   * @param message the message to log.
-   * @param params parameters to the message.
+   * Logs a message object with the {@link Level#TRACE TRACE} level.
    *
-   * @doubt Likely to misinterpret existing log4j client code that intended to call
-   * info(Object,Throwable). Incurs array creation expense on every call. (RG) I assume you
-   * meant error, not info. It isn't possible to be misinterpreted as the previous method
-   * is for that signature. Methods should be added to avoid varargs for 1, 2 or 3 parameters.
+   * @param marker the marker data specific to this log statement
+   * @param message the message object to log.
    */
-  void error(String message, Object... params);
+  void trace(Marker marker, String message);
 
   /**
-   * Logs a message with parameters at the {@link Level#ERROR ERROR} level.
-   * @param marker the marker data specific to this log statement.
+   * Logs a message with parameters at the {@link Level#TRACE TRACE} level.
+   *
+   * @param marker the marker data specific to this log statement
    * @param message the message to log.
    * @param params parameters to the message.
-   *
-   * @doubt Likely to misinterpret existing log4j client code that intended to call
-   * info(Object,Throwable). Incurs array creation expense on every call. (RG) I assume you
-   * meant error, not info. It isn't possible to be misinterpreted as the previous method
-   * is for that signature. Methods should be added to avoid varargs for 1, 2 or 3 parameters.
-   */
-  void error(Marker marker, String message, Object... params);
-
-  /**
-   * Checks whether this Logger is enabled for the {@link Level#ERROR ERROR} Level.
-   *
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         {@link Level#ERROR ERROR}, <code>false</code> otherwise.
    */
-  boolean isErrorEnabled();
+  void trace(Marker marker, String message, Object... params);
 
   /**
-   * Checks whether this Logger is enabled for the {@link Level#ERROR ERROR} Level.
+   * Logs a message at the {@link Level#TRACE TRACE} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * <p/>
+   * <p>
+   * See {@link #debug(String)} form for more detailed information.
+   * </p>
    *
-   * @param marker The marker data specific to this log statement.
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         {@link Level#ERROR ERROR}, <code>false</code> otherwise.
+   * @param marker the marker data specific to this log statement
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  boolean isErrorEnabled(Marker marker);
+  void trace(Marker marker, String message, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
+   * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
    *
    * @param msg the message string to be logged
    */
-  void error(Message msg);
+  void trace(Message msg);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
+   * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
    *
    * @param msg the message string to be logged
    * @param t   A Throwable or null.
    */
-  void error(Message msg, Throwable t);
+  void trace(Message msg, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
+   * Logs a message object with the {@link Level#TRACE TRACE} level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
+   * @param message the message object to log.
    */
-  void error(Marker marker, Message msg);
+  void trace(Object message);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
+   * Logs a message at the {@link Level#TRACE TRACE} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * <p/>
+   * <p>
+   * See {@link #debug(String)} form for more detailed information.
+   * </p>
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
-   * @param t      A Throwable or null.
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  void error(Marker marker, Message msg, Throwable t);
+  void trace(Object message, Throwable t);
 
   /**
-   * Logs a message object with the {@link Level#FATAL FATAL} level.
+   * Logs a message object with the {@link Level#TRACE TRACE} level.
    *
    * @param message the message object to log.
    */
-  void fatal(String message);
+  void trace(String message);
 
   /**
-   * Logs a message object with the {@link Level#FATAL FATAL} level.
-   *
-   * @param marker The marker data specific to this log statement.
-   * @param message the message object to log.
+   * Logs a message with parameters at the {@link Level#TRACE TRACE} level.
+   * @param message the message to log.
+   * @param params parameters to the message.
    */
-  void fatal(Marker marker, String message);
+  void trace(String message, Object... params);
 
   /**
-   * Logs a message at the {@link Level#FATAL FATAL} level including the
+   * Logs a message at the {@link Level#TRACE TRACE} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * <p/>
+   * <p>
+   * See {@link #debug(String)} form for more detailed information.
+   * </p>
    *
    * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void fatal(String message, Throwable t);
-
+  void trace(String message, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#FATAL FATAL} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
    *
-   * @param marker The marker data specific to this log statement.
-   * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
    */
-  void fatal(Marker marker, String message, Throwable t);
+  void warn(Marker marker, Message msg);
+
 
   /**
-   * Logs a message object with the {@link Level#FATAL FATAL} level.
+   * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
    *
-   * @param message the message object to log.
+   * @param marker the marker data specific to this log statement
+   * @param msg    the message string to be logged
+   * @param t      A Throwable or null.
    */
-  void fatal(Object message);
+  void warn(Marker marker, Message msg, Throwable t);
 
   /**
-   * Logs a message object with the {@link Level#FATAL FATAL} level.
+   * Logs a message object with the {@link Level#WARN WARN} level.
    *
-   * @param marker The marker data specific to this log statement.
+   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
    */
-  void fatal(Marker marker, Object message);
+  void warn(Marker marker, Object message);
 
   /**
-   * Logs a message at the {@link Level#FATAL FATAL} level including the
+   * Logs a message at the {@link Level#WARN WARN} level including the
    * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
+   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
    * @param t       the exception to log, including its stack trace.
    */
-  void fatal(Object message, Throwable t);
+  void warn(Marker marker, Object message, Throwable t);
 
   /**
-   * Logs a message at the {@link Level#FATAL FATAL} level including the
-   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
+   * Logs a message object with the {@link Level#WARN WARN} level.
    *
-   * @param marker The marker data specific to this log statement.
+   * @param marker the marker data specific to this log statement
    * @param message the message object to log.
-   * @param t       the exception to log, including its stack trace.
    */
-  void fatal(Marker marker, Object message, Throwable t);
+  void warn(Marker marker, String message);
 
   /**
-   * Logs a message with parameters at the {@link Level#FATAL FATAL} level.
+   * Logs a message with parameters at the {@link Level#WARN WARN} level.
    *
+   * @param marker the marker data specific to this log statement.
    * @param message the message to log.
    * @param params parameters to the message.
    *
    * @doubt Likely to misinterpret existing log4j client code that intended to call
-   * info(Object,Throwable). Incurs array creation expense on every call.(RG) I assume you
-   * meant fatal, not info. It isn't possible to be misinterpreted as the previous method
-   * is for that signature. Methods should be added to avoid varargs for 1, 2 or 3 parameters.
+   * info(Object,Throwable). Incurs array creation expense on every call. (RG) I assume you
+   * meant warn, not info. It isn't possible to be misinterpreted as the previous method
+   * is for that signature.Methods should be added to avoid varargs for 1, 2 or 3 parameters.
    */
-  void fatal(String message, Object... params);
+  void warn(Marker marker, String message, Object... params);
 
   /**
-   * Logs a message with parameters at the {@link Level#FATAL FATAL} level.
-   *
-   * @param marker The marker data specific to this log statement.
-   * @param message the message to log.
-   * @param params parameters to the message.
+   * Logs a message at the {@link Level#WARN WARN} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @doubt Likely to misinterpret existing log4j client code that intended to call
-   * info(Object,Throwable). Incurs array creation expense on every call.(RG) I assume you
-   * meant fatal, not info. It isn't possible to be misinterpreted as the previous method
-   * is for that signature. Methods should be added to avoid varargs for 1, 2 or 3 parameters.
+   * @param marker the marker data specific to this log statement
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  void fatal(Marker marker, String message, Object... params);
+  void warn(Marker marker, String message, Throwable t);
 
   /**
-   * Checks whether this Logger is enabled for the {@link Level#FATAL FATAL} Level.
+   * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
    *
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         {@link Level#FATAL FATAL}, <code>false</code> otherwise.
+   * @param msg the message string to be logged
    */
-  boolean isFatalEnabled();
+  void warn(Message msg);
 
   /**
-   * Checks whether this Logger is enabled for the {@link Level#FATAL FATAL} Level.
+   * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
    *
-   * @param marker The marker data specific to this log statement.
-   * @return boolean - <code>true</code> if this Logger is enabled for level
-   *         {@link Level#FATAL FATAL}, <code>false</code> otherwise.
+   * @param msg the message string to be logged
+   * @param t   A Throwable or null.
    */
-  boolean isFatalEnabled(Marker marker);
+  void warn(Message msg, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
+   * Logs a message object with the {@link Level#WARN WARN} level.
    *
-   * @param msg the message string to be logged
+   * @param message the message object to log.
    */
-  void fatal(Message msg);
+  void warn(Object message);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
+   * Logs a message at the {@link Level#WARN WARN} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param msg the message string to be logged
-   * @param t   A Throwable or null.
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  void fatal(Message msg, Throwable t);
+  void warn(Object message, Throwable t);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
+   * Logs a message object with the {@link Level#WARN WARN} level.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
+   * @param message the message object to log.
    */
-  void fatal(Marker marker, Message msg);
+  void warn(String message);
 
   /**
-   * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
+   * Logs a message with parameters at the {@link Level#WARN WARN} level.
+   * @param message the message to log.
+   * @param params parameters to the message.
+   * @doubt Likely to misinterpret existing log4j client code that intended to call
+   * info(Object,Throwable). Incurs array creation expense on every call. (RG) I assume you
+   * meant warn, not info. It isn't possible to be misinterpreted as the previous method
+   * is for that signature.Methods should be added to avoid varargs for 1, 2 or 3 parameters.
+   */
+  void warn(String message, Object... params);
+
+  /**
+   * Logs a message at the {@link Level#WARN WARN} level including the
+   * stack trace of the {@link Throwable} <code>t</code> passed as parameter.
    *
-   * @param marker the marker data specific to this log statement
-   * @param msg    the message string to be logged
-   * @param t      A Throwable or null.
+   * @param message the message object to log.
+   * @param t       the exception to log, including its stack trace.
    */
-  void fatal(Marker marker, Message msg, Throwable t);
+  void warn(String message, Throwable t);
 }