<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_33) on Sun Jul 29 12:17:01 PDT 2012 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Index (Log4J API 2.0-alpha1 API)
</TITLE>

<META NAME="date" CONTENT="2012-07-29">

<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Index (Log4J API 2.0-alpha1 API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<A HREF="#_A_">A</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi"><B>AbstractLogger</B></A> - Class in <A HREF="./org/apache/logging/log4j/spi/package-summary.html">org.apache.logging.log4j.spi</A><DD>Base implementation of a Logger.<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#AbstractLogger()"><B>AbstractLogger()</B></A> - 
Constructor for class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi"><B>AbstractLoggerWrapper</B></A> - Class in <A HREF="./org/apache/logging/log4j/spi/package-summary.html">org.apache.logging.log4j.spi</A><DD>Wrapper class that exposes the protected AbstractLogger methods to support wrapped loggers.<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#AbstractLoggerWrapper(org.apache.logging.log4j.spi.AbstractLogger, java.lang.String)"><B>AbstractLoggerWrapper(AbstractLogger, String)</B></A> - 
Constructor for class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Constructor that wraps and existing Logger.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#appendMap(java.lang.StringBuilder)"><B>appendMap(StringBuilder)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#asJava(java.lang.StringBuilder)"><B>asJava(StringBuilder)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#asJSON(java.lang.StringBuilder)"><B>asJSON(StringBuilder)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#asString()"><B>asString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Format the Structured data as described in RFC 5424.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#asString(java.lang.String)"><B>asString(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#asString()"><B>asString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Format the Structured data as described in RFC 5424.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#asString(java.lang.String)"><B>asString(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Format the Structured data as described in RFC 5424.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#asString(java.lang.String, org.apache.logging.log4j.message.StructuredDataId)"><B>asString(String, StructuredDataId)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Format the Structured data as described in RFC 5424.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#asXML(java.lang.StringBuilder)"><B>asXML(StringBuilder)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_C_"><!-- --></A><H2>
<B>C</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/Logger.html#catching(java.lang.Throwable)"><B>catching(Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log an exception or error that has been caught.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#catching(org.apache.logging.log4j.Level, java.lang.Throwable)"><B>catching(Level, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log an exception or error that has been caught.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#catching(java.lang.Throwable)"><B>catching(Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log an exception or error that has been caught.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#catching(org.apache.logging.log4j.Level, java.lang.Throwable)"><B>catching(Level, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log an exception or error that has been caught.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#CATCHING_MARKER"><B>CATCHING_MARKER</B></A> - 
Static variable in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Marker for catching exceptions.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Clear the data.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>Clears the list of status events.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#clear()"><B>clear()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Clear the context.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#clearStack()"><B>clearStack()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Clear the stack for this thread.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#cloneStack()"><B>cloneStack()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Return a copy of this thread's stack.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#containsKey(java.lang.String)"><B>containsKey(String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Determine if the key is in the context.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#countArgumentPlaceholders(java.lang.String)"><B>countArgumentPlaceholders(String)</B></A> - 
Static method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Counts the number of unescaped placeholders in the given messagePattern.
</DL>
<HR>
<A NAME="_D_"><!-- --></A><H2>
<B>D</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(java.lang.String)"><B>debug(String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#DEBUG"><CODE>DEBUG</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.Marker, java.lang.String)"><B>debug(Marker, String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#DEBUG"><CODE>DEBUG</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(java.lang.String, java.lang.Throwable)"><B>debug(String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>DEBUG</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>debug(Marker, String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>DEBUG</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(java.lang.Object)"><B>debug(Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#DEBUG"><CODE>DEBUG</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.Marker, java.lang.Object)"><B>debug(Marker, Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#DEBUG"><CODE>DEBUG</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(java.lang.Object, java.lang.Throwable)"><B>debug(Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>DEBUG</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>debug(Marker, Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>DEBUG</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(java.lang.String, java.lang.Object...)"><B>debug(String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>DEBUG</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>debug(Marker, String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>DEBUG</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.message.Message)"><B>debug(Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the DEBUG level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>debug(Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the DEBUG level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>debug(Marker, Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the DEBUG level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#debug(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>debug(Marker, Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the DEBUG level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(java.lang.String)"><B>debug(String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#DEBUG"><CODE>DEBUG</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.Marker, java.lang.String)"><B>debug(Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#DEBUG"><CODE>DEBUG</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(java.lang.String, java.lang.Throwable)"><B>debug(String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>DEBUG</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>debug(Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>DEBUG</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(java.lang.Object)"><B>debug(Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#DEBUG"><CODE>DEBUG</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.Marker, java.lang.Object)"><B>debug(Marker, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#DEBUG"><CODE>DEBUG</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(java.lang.Object, java.lang.Throwable)"><B>debug(Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>DEBUG</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>debug(Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>DEBUG</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(java.lang.String, java.lang.Object...)"><B>debug(String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>DEBUG</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>debug(Marker, String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>DEBUG</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.message.Message)"><B>debug(Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the DEBUG level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>debug(Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the DEBUG level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>debug(Marker, Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the DEBUG level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#debug(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>debug(Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the DEBUG level.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#deepToString(java.lang.Object)"><B>deepToString(Object)</B></A> - 
Static method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>This method performs a deep toString of the given Object.
</DL>
<HR>
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/Logger.html#entry()"><B>entry()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log entry to a method.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#entry(java.lang.Object...)"><B>entry(Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log entry to a method.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#entry()"><B>entry()</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log entry to a method.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#entry(java.lang.Object...)"><B>entry(Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log entry to a method.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#ENTRY_MARKER"><B>ENTRY_MARKER</B></A> - 
Static variable in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Marker for method entry tracing.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ObjectMessage.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ObjectMessage.html" title="class in org.apache.logging.log4j.message">ObjectMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message">SimpleMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(java.lang.String)"><B>error(String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#ERROR"><CODE>ERROR</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.Marker, java.lang.String)"><B>error(Marker, String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#ERROR"><CODE>ERROR</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(java.lang.String, java.lang.Throwable)"><B>error(String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>ERROR</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>error(Marker, String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>ERROR</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(java.lang.Object)"><B>error(Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#ERROR"><CODE>ERROR</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.Marker, java.lang.Object)"><B>error(Marker, Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#ERROR"><CODE>ERROR</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(java.lang.Object, java.lang.Throwable)"><B>error(Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>ERROR</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>error(Marker, Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>ERROR</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(java.lang.String, java.lang.Object...)"><B>error(String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>ERROR</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>error(Marker, String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>ERROR</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.message.Message)"><B>error(Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the ERROR level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>error(Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the ERROR level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>error(Marker, Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the ERROR level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#error(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>error(Marker, Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the ERROR level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(java.lang.String)"><B>error(String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#ERROR"><CODE>ERROR</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.Marker, java.lang.String)"><B>error(Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#ERROR"><CODE>ERROR</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(java.lang.String, java.lang.Throwable)"><B>error(String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>ERROR</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>error(Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>ERROR</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(java.lang.Object)"><B>error(Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#ERROR"><CODE>ERROR</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.Marker, java.lang.Object)"><B>error(Marker, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#ERROR"><CODE>ERROR</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(java.lang.Object, java.lang.Throwable)"><B>error(Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>ERROR</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>error(Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>ERROR</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(java.lang.String, java.lang.Object...)"><B>error(String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>ERROR</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>error(Marker, String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>ERROR</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.message.Message)"><B>error(Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the ERROR level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>error(Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the ERROR level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>error(Marker, Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the ERROR level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#error(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>error(Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the ERROR level.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ERROR_MSG_SEPARATOR"><B>ERROR_MSG_SEPARATOR</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Separator for error messages.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ERROR_PREFIX"><B>ERROR_PREFIX</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Prefix for errors.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ERROR_SEPARATOR"><B>ERROR_SEPARATOR</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Separator for errors.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ERROR_SUFFIX"><B>ERROR_SUFFIX</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Suffix for errors.
<DT><A HREF="./org/apache/logging/log4j/EventLogger.html#EVENT_MARKER"><B>EVENT_MARKER</B></A> - 
Static variable in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/EventLogger.html" title="class in org.apache.logging.log4j">EventLogger</A>
<DD>Define the Event Marker.
<DT><A HREF="./org/apache/logging/log4j/EventLogger.html" title="class in org.apache.logging.log4j"><B>EventLogger</B></A> - Class in <A HREF="./org/apache/logging/log4j/package-summary.html">org.apache.logging.log4j</A><DD>Logs "Events" that are represented as StructuredDataMessages.<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#EXCEPTION_MARKER"><B>EXCEPTION_MARKER</B></A> - 
Static variable in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Marker for exception tracing.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#exit()"><B>exit()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log exit from a method.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#exit(R)"><B>exit(R)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log exiting from a method with the result.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#exit()"><B>exit()</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log exit from a method.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#exit(R)"><B>exit(R)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log exiting from a method with the result.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#EXIT_MARKER"><B>EXIT_MARKER</B></A> - 
Static variable in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Marker for method exit tracing.
</DL>
<HR>
<A NAME="_F_"><!-- --></A><H2>
<B>F</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(java.lang.String)"><B>fatal(String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#FATAL"><CODE>FATAL</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.Marker, java.lang.String)"><B>fatal(Marker, String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#FATAL"><CODE>FATAL</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(java.lang.String, java.lang.Throwable)"><B>fatal(String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>FATAL</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>fatal(Marker, String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>FATAL</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(java.lang.Object)"><B>fatal(Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#FATAL"><CODE>FATAL</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.Marker, java.lang.Object)"><B>fatal(Marker, Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#FATAL"><CODE>FATAL</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(java.lang.Object, java.lang.Throwable)"><B>fatal(Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>FATAL</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>fatal(Marker, Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>FATAL</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(java.lang.String, java.lang.Object...)"><B>fatal(String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>FATAL</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>fatal(Marker, String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>FATAL</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.message.Message)"><B>fatal(Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the FATAL level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>fatal(Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the FATAL level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>fatal(Marker, Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the FATAL level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#fatal(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>fatal(Marker, Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the FATAL level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(java.lang.String)"><B>fatal(String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#FATAL"><CODE>FATAL</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.Marker, java.lang.String)"><B>fatal(Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#FATAL"><CODE>FATAL</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(java.lang.String, java.lang.Throwable)"><B>fatal(String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>FATAL</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>fatal(Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>FATAL</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(java.lang.Object)"><B>fatal(Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#FATAL"><CODE>FATAL</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.Marker, java.lang.Object)"><B>fatal(Marker, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#FATAL"><CODE>FATAL</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(java.lang.Object, java.lang.Throwable)"><B>fatal(Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>FATAL</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>fatal(Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>FATAL</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(java.lang.String, java.lang.Object...)"><B>fatal(String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>FATAL</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>fatal(Marker, String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>FATAL</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.message.Message)"><B>fatal(Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the FATAL level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>fatal(Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the FATAL level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>fatal(Marker, Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the FATAL level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#fatal(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>fatal(Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the FATAL level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#FLOW_MARKER"><B>FLOW_MARKER</B></A> - 
Static variable in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Marker for flow tracing.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#format(java.lang.String, java.lang.Object[])"><B>format(String, Object[])</B></A> - 
Static method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Replace placeholders in the given messagePattern with arguments.
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#formatMessage(java.lang.String, java.lang.String[])"><B>formatMessage(String, String[])</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>Return the formatted message after looking up the format in the resource bundle.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#formatMessage(java.lang.String, java.lang.String[])"><B>formatMessage(String, String[])</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#FULL"><B>FULL</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Full message format includes the type and message.
</DL>
<HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#get(java.lang.String)"><B>get(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Retrieve the value of the element with the specified key or null if the key is not present.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#get(java.lang.String)"><B>get(String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Get the context identified by the <code>key</code> parameter.
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#getBundle(java.lang.String, java.util.Locale, boolean)"><B>getBundle(String, Locale, boolean)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>Override this to use a ResourceBundle.Control in Java 6
<DT><A HREF="./org/apache/logging/log4j/LogManager.html#getContext()"><B>getContext()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j">LogManager</A>
<DD>Returns the current LoggerContext.
<DT><A HREF="./org/apache/logging/log4j/LogManager.html#getContext(boolean)"><B>getContext(boolean)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j">LogManager</A>
<DD>Returns a LoggerContext.
<DT><A HREF="./org/apache/logging/log4j/LogManager.html#getContext(java.lang.String, boolean)"><B>getContext(String, boolean)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j">LogManager</A>
<DD>Returns a LoggerContext
<DT><A HREF="./org/apache/logging/log4j/spi/LoggerContextFactory.html#getContext(java.lang.String, boolean)"><B>getContext(String, boolean)</B></A> - 
Method in interface org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/LoggerContextFactory.html" title="interface in org.apache.logging.log4j.spi">LoggerContextFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#getContext()"><B>getContext()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Get the current thread's MDC as a hashtable.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#getData()"><B>getData()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Return the message data as an unmodifiable Map.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#getDepth()"><B>getDepth()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Get the current nesting depth of this thread's stack.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#getEnterpriseNumber()"><B>getEnterpriseNumber()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>Return the enterprise number.
<DT><A HREF="./org/apache/logging/log4j/spi/LoggerContext.html#getExternalContext()"><B>getExternalContext()</B></A> - 
Method in interface org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/LoggerContext.html" title="interface in org.apache.logging.log4j.spi">LoggerContext</A>
<DD>An anchor for some other context, such as a ServletContext.
<DT><A HREF="./org/apache/logging/log4j/LogManager.html#getFactory()"><B>getFactory()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j">LogManager</A>
<DD>Return the LoggerContextFactory.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#getFormattedMessage()"><B>getFormattedMessage()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Format the message and return it.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#getFormattedMessage(java.lang.String[])"><B>getFormattedMessage(String[])</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/Message.html#getFormattedMessage()"><B>getFormattedMessage()</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/Message.html" title="interface in org.apache.logging.log4j.message">Message</A>
<DD>Returns the Message formatted as a String.
<DT><A HREF="./org/apache/logging/log4j/message/MultiformatMessage.html#getFormattedMessage(java.lang.String[])"><B>getFormattedMessage(String[])</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MultiformatMessage.html" title="interface in org.apache.logging.log4j.message">MultiformatMessage</A>
<DD>Returns the Message formatted as a String.
<DT><A HREF="./org/apache/logging/log4j/message/ObjectMessage.html#getFormattedMessage()"><B>getFormattedMessage()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ObjectMessage.html" title="class in org.apache.logging.log4j.message">ObjectMessage</A>
<DD>Return the formatted object message.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#getFormattedMessage()"><B>getFormattedMessage()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Return the formatted message.
<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html#getFormattedMessage()"><B>getFormattedMessage()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message">SimpleMessage</A>
<DD>Return the message.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#getFormattedMessage()"><B>getFormattedMessage()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Format the message and return it.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#getFormattedMessage(java.lang.String[])"><B>getFormattedMessage(String[])</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Format the message according the the specified format.
<DT><A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html#getFormattedMessage()"><B>getFormattedMessage()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html" title="class in org.apache.logging.log4j.message">ThreadDumpMessage</A>
<DD>Return the ThreadDump in printable format.
<DT><A HREF="./org/apache/logging/log4j/status/StatusData.html#getFormattedStatus()"><B>getFormattedStatus()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusData.html" title="class in org.apache.logging.log4j.status">StatusData</A>
<DD>Formats the StatusData for viewing.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Return the id.
<DT><A HREF="./org/apache/logging/log4j/status/StatusData.html#getLevel()"><B>getLevel()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusData.html" title="class in org.apache.logging.log4j.status">StatusData</A>
<DD>Returns the logging level for the event.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#getListeners()"><B>getListeners()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>Returns a thread safe Iterator for the StatusListener.
<DT><A HREF="./org/apache/logging/log4j/LogManager.html#getLogger(java.lang.String)"><B>getLogger(String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j">LogManager</A>
<DD>Return a Logger with the specified name.
<DT><A HREF="./org/apache/logging/log4j/LogManager.html#getLogger(java.lang.String, java.lang.String)"><B>getLogger(String, String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j">LogManager</A>
<DD>Return a Logger with the specified name.
<DT><A HREF="./org/apache/logging/log4j/spi/LoggerContext.html#getLogger(java.lang.String)"><B>getLogger(String)</B></A> - 
Method in interface org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/LoggerContext.html" title="interface in org.apache.logging.log4j.spi">LoggerContext</A>
<DD>Return a Logger.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#getLogger()"><B>getLogger()</B></A> - 
Static method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>Retrieve the StatusLogger.
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#getLoggerName()"><B>getLoggerName()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>Return the name of the Logger.
<DT><A HREF="./org/apache/logging/log4j/message/LoggerNameAwareMessage.html#getLoggerName()"><B>getLoggerName()</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LoggerNameAwareMessage.html" title="interface in org.apache.logging.log4j.message">LoggerNameAwareMessage</A>
<DD>Returns the name of the Logger.
<DT><A HREF="./org/apache/logging/log4j/MarkerManager.html#getMarker(java.lang.String)"><B>getMarker(String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/MarkerManager.html" title="class in org.apache.logging.log4j">MarkerManager</A>
<DD>Retrieve a Marker or create a Marker that has no parent.
<DT><A HREF="./org/apache/logging/log4j/MarkerManager.html#getMarker(java.lang.String, java.lang.String)"><B>getMarker(String, String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/MarkerManager.html" title="class in org.apache.logging.log4j">MarkerManager</A>
<DD>Retrieves or creates a Marker with the specified parent.
<DT><A HREF="./org/apache/logging/log4j/MarkerManager.html#getMarker(java.lang.String, org.apache.logging.log4j.Marker)"><B>getMarker(String, Marker)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/MarkerManager.html" title="class in org.apache.logging.log4j">MarkerManager</A>
<DD>Retrieves or creates a Marker with the specified parent.
<DT><A HREF="./org/apache/logging/log4j/status/StatusData.html#getMessage()"><B>getMessage()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusData.html" title="class in org.apache.logging.log4j.status">StatusData</A>
<DD>Returns the message associated with the event.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#getMessageFormat()"><B>getMessageFormat()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Return the message.
<DT><A HREF="./org/apache/logging/log4j/message/Message.html#getMessageFormat()"><B>getMessageFormat()</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/Message.html" title="interface in org.apache.logging.log4j.message">Message</A>
<DD>Returns the format portion of the Message.
<DT><A HREF="./org/apache/logging/log4j/message/ObjectMessage.html#getMessageFormat()"><B>getMessageFormat()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ObjectMessage.html" title="class in org.apache.logging.log4j.message">ObjectMessage</A>
<DD>Returns the object formatted using its toString method.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#getMessageFormat()"><B>getMessageFormat()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Returns the message pattern.
<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html#getMessageFormat()"><B>getMessageFormat()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message">SimpleMessage</A>
<DD>Return the message.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#getMessageFormat()"><B>getMessageFormat()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Return the message.
<DT><A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html#getMessageFormat()"><B>getMessageFormat()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html" title="class in org.apache.logging.log4j.message">ThreadDumpMessage</A>
<DD>Returns the title.
<DT><A HREF="./org/apache/logging/log4j/Marker.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Marker.html" title="interface in org.apache.logging.log4j">Marker</A>
<DD>Returns the name of this Marker.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>Return the StructuredDataId name.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#getOptional()"><B>getOptional()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>Returns a list of optional keys.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Return the data elements as if they were parameters on the logging event.
<DT><A HREF="./org/apache/logging/log4j/message/Message.html#getParameters()"><B>getParameters()</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/Message.html" title="interface in org.apache.logging.log4j.message">Message</A>
<DD>Returns parameter values, if any.
<DT><A HREF="./org/apache/logging/log4j/message/ObjectMessage.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ObjectMessage.html" title="class in org.apache.logging.log4j.message">ObjectMessage</A>
<DD>Returns the object as if it were a parameter.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Returns the message parameters.
<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message">SimpleMessage</A>
<DD>Returns null since there are no parameters.
<DT><A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html" title="class in org.apache.logging.log4j.message">ThreadDumpMessage</A>
<DD>Returns an array with a single element, a Map containing the ThreadInformation as the key.
<DT><A HREF="./org/apache/logging/log4j/Marker.html#getParent()"><B>getParent()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Marker.html" title="interface in org.apache.logging.log4j">Marker</A>
<DD>Returns the parent of this Marker.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#getRequired()"><B>getRequired()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>Returns a list of required keys.
<DT><A HREF="./org/apache/logging/log4j/status/StatusData.html#getStackTraceElement()"><B>getStackTraceElement()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusData.html" title="class in org.apache.logging.log4j.status">StatusData</A>
<DD>Returns the StackTraceElement for the method that created the event.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#getStatusData()"><B>getStatusData()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>Returns a List of all events as StatusData objects.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#getThrowable()"><B>getThrowable()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Returns the Throwable that was given as the last argument, if any.
<DT><A HREF="./org/apache/logging/log4j/status/StatusData.html#getThrowable()"><B>getThrowable()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusData.html" title="class in org.apache.logging.log4j.status">StatusData</A>
<DD>Returns the Throwable associated with the event.
<DT><A HREF="./org/apache/logging/log4j/message/TimestampMessage.html#getTimestamp()"><B>getTimestamp()</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/TimestampMessage.html" title="interface in org.apache.logging.log4j.message">TimestampMessage</A>
<DD>Returns the timestamp.
<DT><A HREF="./org/apache/logging/log4j/status/StatusData.html#getTimestamp()"><B>getTimestamp()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusData.html" title="class in org.apache.logging.log4j.status">StatusData</A>
<DD>Return the event's timestamp.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Set the type.
</DL>
<HR>
<A NAME="_H_"><!-- --></A><H2>
<B>H</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ObjectMessage.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ObjectMessage.html" title="class in org.apache.logging.log4j.message">ObjectMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message">SimpleMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/spi/LoggerContext.html#hasLogger(java.lang.String)"><B>hasLogger(String)</B></A> - 
Method in interface org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/LoggerContext.html" title="interface in org.apache.logging.log4j.spi">LoggerContext</A>
<DD>Detect if a Logger with the specified name exists.
</DL>
<HR>
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#identityToString(java.lang.Object)"><B>identityToString(Object)</B></A> - 
Static method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>This method returns the same as if Object.toString() would not have been
 overridden in obj.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(java.lang.String)"><B>info(String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#INFO"><CODE>INFO</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.Marker, java.lang.String)"><B>info(Marker, String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#INFO"><CODE>INFO</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(java.lang.String, java.lang.Throwable)"><B>info(String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>INFO</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>info(Marker, String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>INFO</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(java.lang.Object)"><B>info(Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#INFO"><CODE>INFO</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.Marker, java.lang.Object)"><B>info(Marker, Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#INFO"><CODE>INFO</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(java.lang.Object, java.lang.Throwable)"><B>info(Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>INFO</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>info(Marker, Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>INFO</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(java.lang.String, java.lang.Object...)"><B>info(String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>INFO</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>info(Marker, String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>INFO</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.message.Message)"><B>info(Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>info(Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the INFO level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>info(Marker, Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the INFO level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#info(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>info(Marker, Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the INFO level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(java.lang.String)"><B>info(String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#INFO"><CODE>INFO</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.Marker, java.lang.String)"><B>info(Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#INFO"><CODE>INFO</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(java.lang.String, java.lang.Throwable)"><B>info(String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>INFO</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>info(Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>INFO</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(java.lang.Object)"><B>info(Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#INFO"><CODE>INFO</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.Marker, java.lang.Object)"><B>info(Marker, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#INFO"><CODE>INFO</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(java.lang.Object, java.lang.Throwable)"><B>info(Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>INFO</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>info(Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>INFO</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(java.lang.String, java.lang.Object...)"><B>info(String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>INFO</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>info(Marker, String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>INFO</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.message.Message)"><B>info(Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>info(Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the INFO level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>info(Marker, Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the INFO level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#info(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>info(Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the INFO level.
<DT><A HREF="./org/apache/logging/log4j/Level.html#intLevel()"><B>intLevel()</B></A> - 
Method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Returns the integer value of the Level.
<DT><A HREF="./org/apache/logging/log4j/Level.html#isAtLeastAsSpecificAs(org.apache.logging.log4j.Level)"><B>isAtLeastAsSpecificAs(Level)</B></A> - 
Method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Compares this level against the level passed as an argument and returns true if this
 level is the same or more specific.
<DT><A HREF="./org/apache/logging/log4j/Level.html#isAtLeastAsSpecificAs(int)"><B>isAtLeastAsSpecificAs(int)</B></A> - 
Method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Compares this level against the level passed as an argument and returns true if this
 level is the same or more specific.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isDebugEnabled()"><B>isDebugEnabled()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the DEBUG Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isDebugEnabled(org.apache.logging.log4j.Marker)"><B>isDebugEnabled(Marker)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the DEBUG Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isDebugEnabled()"><B>isDebugEnabled()</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the DEBUG Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isDebugEnabled(org.apache.logging.log4j.Marker)"><B>isDebugEnabled(Marker)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the DEBUG Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String)"><B>isEnabled(Level, Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Determine if logging is enabled.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>isEnabled(Level, Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Determine if logging is enabled.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Determine if logging is enabled.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Determine if logging is enabled.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object, Object, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Determine if logging is enabled.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object...)"><B>isEnabled(Level, Marker, String, Object, Object, Object, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Determine if logging is enabled.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>isEnabled(Level, Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Determine if logging is enabled.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>isEnabled(Level, Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Determine if logging is enabled.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String)"><B>isEnabled(Level, Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Detect if the event would be logged.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>isEnabled(Level, Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Detect if the event would be logged.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Detect if the event would be logged.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Detect if the event would be logged.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object, Object, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Detect if the event would be logged.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object...)"><B>isEnabled(Level, Marker, String, Object, Object, Object, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Detect if the event would be logged.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>isEnabled(Level, Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Detect if the event would be logged.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>isEnabled(Level, Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Detect if the event would be logged.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String)"><B>isEnabled(Level, Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>isEnabled(Level, Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object, Object)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><B>isEnabled(Level, Marker, String, Object, Object, Object)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object...)"><B>isEnabled(Level, Marker, String, Object, Object, Object, Object...)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>isEnabled(Level, Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>isEnabled(Level, Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#isEnabled(org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker)"><B>isEnabled(Level, Marker)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isErrorEnabled()"><B>isErrorEnabled()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the ERROR Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isErrorEnabled(org.apache.logging.log4j.Marker)"><B>isErrorEnabled(Marker)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the ERROR Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isErrorEnabled()"><B>isErrorEnabled()</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the ERROR Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isErrorEnabled(org.apache.logging.log4j.Marker)"><B>isErrorEnabled(Marker)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the ERROR Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isFatalEnabled()"><B>isFatalEnabled()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the FATAL Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isFatalEnabled(org.apache.logging.log4j.Marker)"><B>isFatalEnabled(Marker)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the FATAL Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isFatalEnabled()"><B>isFatalEnabled()</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the FATAL Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isFatalEnabled(org.apache.logging.log4j.Marker)"><B>isFatalEnabled(Marker)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the FATAL Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isInfoEnabled()"><B>isInfoEnabled()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the INFO Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isInfoEnabled(org.apache.logging.log4j.Marker)"><B>isInfoEnabled(Marker)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the INFO Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isInfoEnabled()"><B>isInfoEnabled()</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the INFO Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isInfoEnabled(org.apache.logging.log4j.Marker)"><B>isInfoEnabled(Marker)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the INFO Level.
<DT><A HREF="./org/apache/logging/log4j/Marker.html#isInstanceOf(org.apache.logging.log4j.Marker)"><B>isInstanceOf(Marker)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Marker.html" title="interface in org.apache.logging.log4j">Marker</A>
<DD>Checks whether this Marker is an instance of the specified Marker.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#isReserved()"><B>isReserved()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>Indicates if the id is reserved.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isTraceEnabled()"><B>isTraceEnabled()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the TRACE  Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isTraceEnabled(org.apache.logging.log4j.Marker)"><B>isTraceEnabled(Marker)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the TRACE  Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isTraceEnabled()"><B>isTraceEnabled()</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the TRACE  Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isTraceEnabled(org.apache.logging.log4j.Marker)"><B>isTraceEnabled(Marker)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the TRACE  Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isWarnEnabled()"><B>isWarnEnabled()</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the WARN Level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#isWarnEnabled(org.apache.logging.log4j.Marker)"><B>isWarnEnabled(Marker)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Check whether this Logger is enabled for the WARN Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isWarnEnabled()"><B>isWarnEnabled()</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the WARN Level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#isWarnEnabled(org.apache.logging.log4j.Marker)"><B>isWarnEnabled(Marker)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Check whether this Logger is enabled for the WARN Level.
</DL>
<HR>
<A NAME="_L_"><!-- --></A><H2>
<B>L</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/Level.html#lessOrEqual(org.apache.logging.log4j.Level)"><B>lessOrEqual(Level)</B></A> - 
Method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Compares the specified Level against this one.
<DT><A HREF="./org/apache/logging/log4j/Level.html#lessOrEqual(int)"><B>lessOrEqual(int)</B></A> - 
Method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Compares the specified Level against this one.
<DT><A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j"><B>Level</B></A> - Enum in <A HREF="./org/apache/logging/log4j/package-summary.html">org.apache.logging.log4j</A><DD>Levels used for identifying the severity of an event.<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message"><B>LocalizedMessage</B></A> - Class in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>This class is not the recommended way to Localize messages.<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage()"><B>LocalizedMessage()</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>The basic constructor.
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.lang.String[], java.lang.Throwable)"><B>LocalizedMessage(String, String[], Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.lang.String, java.lang.String[], java.lang.Throwable)"><B>LocalizedMessage(String, String, String[], Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.ResourceBundle, java.lang.String, java.lang.String[], java.lang.Throwable)"><B>LocalizedMessage(ResourceBundle, String, String[], Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.util.Locale, java.lang.String, java.lang.String[], java.lang.Throwable)"><B>LocalizedMessage(String, Locale, String, String[], Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.ResourceBundle, java.util.Locale, java.lang.String, java.lang.String[], java.lang.Throwable)"><B>LocalizedMessage(ResourceBundle, Locale, String, String[], Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.Locale, java.lang.String, java.lang.String[], java.lang.Throwable)"><B>LocalizedMessage(Locale, String, String[], Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.lang.Object[])"><B>LocalizedMessage(String, Object[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>This method returns a LocalizedMessage which contains the arguments converted to String
 as well as an optional Throwable.
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.lang.String, java.lang.Object[])"><B>LocalizedMessage(String, String, Object[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.ResourceBundle, java.lang.String, java.lang.Object[])"><B>LocalizedMessage(ResourceBundle, String, Object[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.util.Locale, java.lang.String, java.lang.Object[])"><B>LocalizedMessage(String, Locale, String, Object[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.ResourceBundle, java.util.Locale, java.lang.String, java.lang.Object[])"><B>LocalizedMessage(ResourceBundle, Locale, String, Object[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.Locale, java.lang.String, java.lang.Object[])"><B>LocalizedMessage(Locale, String, Object[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.lang.Object)"><B>LocalizedMessage(String, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.lang.String, java.lang.Object)"><B>LocalizedMessage(String, String, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.ResourceBundle, java.lang.String, java.lang.Object)"><B>LocalizedMessage(ResourceBundle, String, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.util.Locale, java.lang.String, java.lang.Object)"><B>LocalizedMessage(String, Locale, String, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.ResourceBundle, java.util.Locale, java.lang.String, java.lang.Object)"><B>LocalizedMessage(ResourceBundle, Locale, String, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.Locale, java.lang.String, java.lang.Object)"><B>LocalizedMessage(Locale, String, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.lang.Object, java.lang.Object)"><B>LocalizedMessage(String, Object, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.lang.String, java.lang.Object, java.lang.Object)"><B>LocalizedMessage(String, String, Object, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.ResourceBundle, java.lang.String, java.lang.Object, java.lang.Object)"><B>LocalizedMessage(ResourceBundle, String, Object, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.lang.String, java.util.Locale, java.lang.String, java.lang.Object, java.lang.Object)"><B>LocalizedMessage(String, Locale, String, Object, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.ResourceBundle, java.util.Locale, java.lang.String, java.lang.Object, java.lang.Object)"><B>LocalizedMessage(ResourceBundle, Locale, String, Object, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#LocalizedMessage(java.util.Locale, java.lang.String, java.lang.Object, java.lang.Object)"><B>LocalizedMessage(Locale, String, Object, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#log(org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>log(Marker, String, Level, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with location information.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#log(org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>log(Marker, String, Level, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>Log an event.
<DT><A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html#log(org.apache.logging.log4j.status.StatusData)"><B>log(StatusData)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html" title="class in org.apache.logging.log4j.status">StatusConsoleListener</A>
<DD>Writes status messages to the console.
<DT><A HREF="./org/apache/logging/log4j/status/StatusListener.html#log(org.apache.logging.log4j.status.StatusData)"><B>log(StatusData)</B></A> - 
Method in interface org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusListener.html" title="interface in org.apache.logging.log4j.status">StatusListener</A>
<DD>Called as events occur to process the StatusData.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#log(org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>log(Marker, String, Level, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>Add an event.
<DT><A HREF="./org/apache/logging/log4j/EventLogger.html#logEvent(org.apache.logging.log4j.message.StructuredDataMessage)"><B>logEvent(StructuredDataMessage)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/EventLogger.html" title="class in org.apache.logging.log4j">EventLogger</A>
<DD>Log events with a level of ALL.
<DT><A HREF="./org/apache/logging/log4j/EventLogger.html#logEvent(org.apache.logging.log4j.message.StructuredDataMessage, org.apache.logging.log4j.Level)"><B>logEvent(StructuredDataMessage, Level)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/EventLogger.html" title="class in org.apache.logging.log4j">EventLogger</A>
<DD>Log events and specify the logging level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j"><B>Logger</B></A> - Interface in <A HREF="./org/apache/logging/log4j/package-summary.html">org.apache.logging.log4j</A><DD>This is the central interface in the log4j package.<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#logger"><B>logger</B></A> - 
Variable in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>The wrapped Logger.
<DT><A HREF="./org/apache/logging/log4j/spi/LoggerContext.html" title="interface in org.apache.logging.log4j.spi"><B>LoggerContext</B></A> - Interface in <A HREF="./org/apache/logging/log4j/spi/package-summary.html">org.apache.logging.log4j.spi</A><DD>Anchor point for logging implementations.<DT><A HREF="./org/apache/logging/log4j/spi/LoggerContextFactory.html" title="interface in org.apache.logging.log4j.spi"><B>LoggerContextFactory</B></A> - Interface in <A HREF="./org/apache/logging/log4j/spi/package-summary.html">org.apache.logging.log4j.spi</A><DD>Interface implemented by factories that create LoggerContext objects.<DT><A HREF="./org/apache/logging/log4j/message/LoggerNameAwareMessage.html" title="interface in org.apache.logging.log4j.message"><B>LoggerNameAwareMessage</B></A> - Interface in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>Message that is interested in the name of the Logger.<DT><A HREF="./org/apache/logging/log4j/LoggingException.html" title="class in org.apache.logging.log4j"><B>LoggingException</B></A> - Exception in <A HREF="./org/apache/logging/log4j/package-summary.html">org.apache.logging.log4j</A><DD>Exception thrown when a exception occurs while logging.<DT><A HREF="./org/apache/logging/log4j/LoggingException.html#LoggingException(java.lang.String)"><B>LoggingException(String)</B></A> - 
Constructor for exception org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LoggingException.html" title="class in org.apache.logging.log4j">LoggingException</A>
<DD>Constructs a LoggingException with a message.
<DT><A HREF="./org/apache/logging/log4j/LoggingException.html#LoggingException(java.lang.String, java.lang.Exception)"><B>LoggingException(String, Exception)</B></A> - 
Constructor for exception org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LoggingException.html" title="class in org.apache.logging.log4j">LoggingException</A>
<DD>Constructs a LoggingException with a message and a chained Exception.
<DT><A HREF="./org/apache/logging/log4j/LoggingException.html#LoggingException(java.lang.Exception)"><B>LoggingException(Exception)</B></A> - 
Constructor for exception org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LoggingException.html" title="class in org.apache.logging.log4j">LoggingException</A>
<DD>Constructs a Logging Exception with a chained Exception and no message.
<DT><A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j"><B>LogManager</B></A> - Class in <A HREF="./org/apache/logging/log4j/package-summary.html">org.apache.logging.log4j</A><DD>The anchor point for the logging system.<DT><A HREF="./org/apache/logging/log4j/LogManager.html#LogManager()"><B>LogManager()</B></A> - 
Constructor for class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j">LogManager</A>
<DD>Prevent instantiation
</DL>
<HR>
<A NAME="_M_"><!-- --></A><H2>
<B>M</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#makeId(org.apache.logging.log4j.message.StructuredDataId)"><B>makeId(StructuredDataId)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>Creates an id using another id to supply default values.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#makeId(java.lang.String, int)"><B>makeId(String, int)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>Creates an id based on the current id.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message"><B>MapMessage</B></A> - Class in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>Represents a Message that consists of a Map.<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#MapMessage()"><B>MapMessage()</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Constructor.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#MapMessage(java.util.Map)"><B>MapMessage(Map&lt;String, String&gt;)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Constructor based on an existing Map.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.MapFormat.html" title="enum in org.apache.logging.log4j.message"><B>MapMessage.MapFormat</B></A> - Enum in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>When set as the format specifier causes the Map to be formatted as XML.<DT><A HREF="./org/apache/logging/log4j/Marker.html" title="interface in org.apache.logging.log4j"><B>Marker</B></A> - Interface in <A HREF="./org/apache/logging/log4j/package-summary.html">org.apache.logging.log4j</A><DD>Markers are objects that are used to add easily filterable information to log messages.<DT><A HREF="./org/apache/logging/log4j/MarkerManager.html" title="class in org.apache.logging.log4j"><B>MarkerManager</B></A> - Class in <A HREF="./org/apache/logging/log4j/package-summary.html">org.apache.logging.log4j</A><DD>Applications create Markers by using the Marker Manager.<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#MAX_STATUS_ENTRIES"><B>MAX_STATUS_ENTRIES</B></A> - 
Static variable in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>System property that can be configured with the number of entries in the queue.
<DT><A HREF="./org/apache/logging/log4j/message/Message.html" title="interface in org.apache.logging.log4j.message"><B>Message</B></A> - Interface in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>An interface for various Message implementations that can be logged.<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#META"><B>META</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>RFC 5424 Meta.
<DT><A HREF="./org/apache/logging/log4j/message/MultiformatMessage.html" title="interface in org.apache.logging.log4j.message"><B>MultiformatMessage</B></A> - Interface in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>A Message that can render itself in more than one way.</DL>
<HR>
<A NAME="_N_"><!-- --></A><H2>
<B>N</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html#name"><B>name</B></A> - 
Variable in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLoggerWrapper.html" title="class in org.apache.logging.log4j.spi">AbstractLoggerWrapper</A>
<DD>The name of the Logger.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#newInstance(java.util.Map)"><B>newInstance(Map&lt;String, String&gt;)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#newInstance(java.util.Map)"><B>newInstance(Map&lt;String, String&gt;)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_O_"><!-- --></A><H2>
<B>O</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/ObjectMessage.html" title="class in org.apache.logging.log4j.message"><B>ObjectMessage</B></A> - Class in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>Handles messages that contain an Object.<DT><A HREF="./org/apache/logging/log4j/message/ObjectMessage.html#ObjectMessage(java.lang.Object)"><B>ObjectMessage(Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ObjectMessage.html" title="class in org.apache.logging.log4j.message">ObjectMessage</A>
<DD>Create the ObjectMessage.
<DT><A HREF="./org/apache/logging/log4j/package-summary.html"><B>org.apache.logging.log4j</B></A> - package org.apache.logging.log4j<DD>Public API for Log4j 2.0.<DT><A HREF="./org/apache/logging/log4j/message/package-summary.html"><B>org.apache.logging.log4j.message</B></A> - package org.apache.logging.log4j.message<DD>Public Message Types used for Log4j 2.0.<DT><A HREF="./org/apache/logging/log4j/spi/package-summary.html"><B>org.apache.logging.log4j.spi</B></A> - package org.apache.logging.log4j.spi<DD>Internal interfaces and classes to be used by authors of logging implementations.<DT><A HREF="./org/apache/logging/log4j/status/package-summary.html"><B>org.apache.logging.log4j.status</B></A> - package org.apache.logging.log4j.status<DD>Status API for Log4j 2.0.<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#ORIGIN"><B>ORIGIN</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>RFC 5424 Origin.
</DL>
<HR>
<A NAME="_P_"><!-- --></A><H2>
<B>P</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message"><B>ParameterizedMessage</B></A> - Class in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>Handles messages that consist of a format string containing '{}' to represent each replaceable token, and
 the parameters.<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ParameterizedMessage()"><B>ParameterizedMessage()</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Create the ParameterizedMessage.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ParameterizedMessage(java.lang.String, java.lang.String[], java.lang.Throwable)"><B>ParameterizedMessage(String, String[], Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Create the parameterizedMessage.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ParameterizedMessage(java.lang.String, java.lang.Object[], java.lang.Throwable)"><B>ParameterizedMessage(String, Object[], Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ParameterizedMessage(java.lang.String, java.lang.Object[])"><B>ParameterizedMessage(String, Object[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>This method returns a ParameterizedMessage which contains the arguments converted to String
 as well as an optional Throwable.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ParameterizedMessage(java.lang.String, java.lang.Object)"><B>ParameterizedMessage(String, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Constructor with a pattern and a single parameter.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#ParameterizedMessage(java.lang.String, java.lang.Object, java.lang.Object)"><B>ParameterizedMessage(String, Object, Object)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Constructor with a pattern and two parameters.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#peek()"><B>peek()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Looks at the last diagnostic context at the top of this NDC
 without removing it.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#pop()"><B>pop()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Returns the value of the last item placed on the stack.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#push(java.lang.String)"><B>push(String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Push new diagnostic context information for the current thread.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#put(java.lang.String, java.lang.String)"><B>put(String, String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Add an item to the data Map.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#put(java.lang.String, java.lang.String)"><B>put(String, String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Put a context value (the <code>o</code> parameter) as identified
 with the <code>key</code> parameter into the current thread's
 context map.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#putAll(java.util.Map)"><B>putAll(Map&lt;String, String&gt;)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Add all the elements from the specified Map.
</DL>
<HR>
<A NAME="_R_"><!-- --></A><H2>
<B>R</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#RECURSION_PREFIX"><B>RECURSION_PREFIX</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Prefix for recursion.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#RECURSION_SUFFIX"><B>RECURSION_SUFFIX</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Suffix for recursion.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#registerListener(org.apache.logging.log4j.status.StatusListener)"><B>registerListener(StatusListener)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>Register a new listener.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#remove(java.lang.String)"><B>remove(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>Remove the element with the specified name.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#remove(java.lang.String)"><B>remove(String)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Remove the the context identified by the <code>key</code>
 parameter.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#removeListener(org.apache.logging.log4j.status.StatusListener)"><B>removeListener(StatusListener)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>Remove a StatusListener.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#removeStack()"><B>removeStack()</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Remove the diagnostic context for this thread.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#RESERVED"><B>RESERVED</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>Reserved enterprise number.
<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status">StatusLogger</A>
<DD>Clears the list of status events and listeners.
<DT><A HREF="./org/apache/logging/log4j/LogManager.html#ROOT_LOGGER_NAME"><B>ROOT_LOGGER_NAME</B></A> - 
Static variable in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/LogManager.html" title="class in org.apache.logging.log4j">LogManager</A>
<DD>The name of the root Logger.
</DL>
<HR>
<A NAME="_S_"><!-- --></A><H2>
<B>S</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html#setFilters(java.lang.String[])"><B>setFilters(String[])</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html" title="class in org.apache.logging.log4j.status">StatusConsoleListener</A>
<DD>Adds package name filters to exclude.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#setId(java.lang.String)"><B>setId(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Set the id from a String.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#setId(org.apache.logging.log4j.message.StructuredDataId)"><B>setId(StructuredDataId)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Set the id.
<DT><A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html#setLevel(org.apache.logging.log4j.Level)"><B>setLevel(Level)</B></A> - 
Method in class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html" title="class in org.apache.logging.log4j.status">StatusConsoleListener</A>
<DD>Sets the level to a new value.
<DT><A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html#setLoggerName(java.lang.String)"><B>setLoggerName(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LocalizedMessage.html" title="class in org.apache.logging.log4j.message">LocalizedMessage</A>
<DD>Set the name of the Logger.
<DT><A HREF="./org/apache/logging/log4j/message/LoggerNameAwareMessage.html#setLoggerName(java.lang.String)"><B>setLoggerName(String)</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/LoggerNameAwareMessage.html" title="interface in org.apache.logging.log4j.message">LoggerNameAwareMessage</A>
<DD>The name of the Logger.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#setMaxDepth(int)"><B>setMaxDepth(int)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Set maximum depth of this diagnostic context.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#setMessageFormat(java.lang.String)"><B>setMessageFormat(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Set the message pattern.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#setMessageFormat(java.lang.String)"><B>setMessageFormat(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#setParameters(java.lang.String[])"><B>setParameters(String[])</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Sets the parameters for the message.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#setParameters(java.lang.Object[])"><B>setParameters(Object[])</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Sets the parameters for the message.
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html#setStack(java.util.Stack)"><B>setStack(Stack&lt;String&gt;)</B></A> - 
Static method in class org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j">ThreadContext</A>
<DD>Set this thread's stack.
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#setThrowable(java.lang.Throwable)"><B>setThrowable(Throwable)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>Set the Throwable for the message.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#setType(java.lang.String)"><B>setType(String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message"><B>SimpleMessage</B></A> - Class in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>The simplest possible implementation of Message.<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html#SimpleMessage()"><B>SimpleMessage()</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message">SimpleMessage</A>
<DD>Basic constructor.
<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html#SimpleMessage(java.lang.String)"><B>SimpleMessage(String)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message">SimpleMessage</A>
<DD>Constructor that includes the message.
<DT><A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html" title="class in org.apache.logging.log4j.status"><B>StatusConsoleListener</B></A> - Class in <A HREF="./org/apache/logging/log4j/status/package-summary.html">org.apache.logging.log4j.status</A><DD>StatusListener that writes to the Console.<DT><A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html#StatusConsoleListener()"><B>StatusConsoleListener()</B></A> - 
Constructor for class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html" title="class in org.apache.logging.log4j.status">StatusConsoleListener</A>
<DD>Creates the StatusConsoleListener using either the level configured by the
 "org.apache.logging.log4j.StatusLevel" system property if it is set or to a
 default value of FATAL.
<DT><A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html#StatusConsoleListener(org.apache.logging.log4j.Level)"><B>StatusConsoleListener(Level)</B></A> - 
Constructor for class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusConsoleListener.html" title="class in org.apache.logging.log4j.status">StatusConsoleListener</A>
<DD>Creates the StatusConsoleListener using the supplied Level.
<DT><A HREF="./org/apache/logging/log4j/status/StatusData.html" title="class in org.apache.logging.log4j.status"><B>StatusData</B></A> - Class in <A HREF="./org/apache/logging/log4j/status/package-summary.html">org.apache.logging.log4j.status</A><DD>The Status data.<DT><A HREF="./org/apache/logging/log4j/status/StatusData.html#StatusData(java.lang.StackTraceElement, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>StatusData(StackTraceElement, Level, Message, Throwable)</B></A> - 
Constructor for class org.apache.logging.log4j.status.<A HREF="./org/apache/logging/log4j/status/StatusData.html" title="class in org.apache.logging.log4j.status">StatusData</A>
<DD>Creates the StatusData object.
<DT><A HREF="./org/apache/logging/log4j/status/StatusListener.html" title="interface in org.apache.logging.log4j.status"><B>StatusListener</B></A> - Interface in <A HREF="./org/apache/logging/log4j/status/package-summary.html">org.apache.logging.log4j.status</A><DD>Interface that allows implementors to be notified of events in the logging system.<DT><A HREF="./org/apache/logging/log4j/status/StatusLogger.html" title="class in org.apache.logging.log4j.status"><B>StatusLogger</B></A> - Class in <A HREF="./org/apache/logging/log4j/status/package-summary.html">org.apache.logging.log4j.status</A><DD>Mechanism to record events that occur in the logging system.<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message"><B>StructuredDataId</B></A> - Class in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>The StructuredData identifier.<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#StructuredDataId(java.lang.String, java.lang.String[], java.lang.String[])"><B>StructuredDataId(String, String[], String[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#StructuredDataId(java.lang.String, int, java.lang.String[], java.lang.String[])"><B>StructuredDataId(String, int, String[], String[])</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>A Constructor that helps conformance to RFC 5424.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message"><B>StructuredDataMessage</B></A> - Class in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>Represents a Message that conforms to RFC 5424 (http://tools.ietf.org/html/rfc5424).<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#StructuredDataMessage(java.lang.String, java.lang.String, java.lang.String)"><B>StructuredDataMessage(String, String, String)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Constructor based on a String id.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#StructuredDataMessage(java.lang.String, java.lang.String, java.lang.String, java.util.Map)"><B>StructuredDataMessage(String, String, String, Map&lt;String, String&gt;)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Constructor based on a String id.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#StructuredDataMessage(org.apache.logging.log4j.message.StructuredDataId, java.lang.String, java.lang.String)"><B>StructuredDataMessage(StructuredDataId, String, String)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Constructor based on a StructuredDataId.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#StructuredDataMessage(org.apache.logging.log4j.message.StructuredDataId, java.lang.String, java.lang.String, java.util.Map)"><B>StructuredDataMessage(StructuredDataId, String, String, Map&lt;String, String&gt;)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Constructor based on a StructuredDataId.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#StructuredDataMessage()"><B>StructuredDataMessage()</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>Basic constructor.
</DL>
<HR>
<A NAME="_T_"><!-- --></A><H2>
<B>T</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/ThreadContext.html" title="class in org.apache.logging.log4j"><B>ThreadContext</B></A> - Class in <A HREF="./org/apache/logging/log4j/package-summary.html">org.apache.logging.log4j</A><DD>The ThreadContext allows applications to store information either in a Map
 <p/><DT><A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html" title="class in org.apache.logging.log4j.message"><B>ThreadDumpMessage</B></A> - Class in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>Captures information about all running Threads.<DT><A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html#ThreadDumpMessage()"><B>ThreadDumpMessage()</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html" title="class in org.apache.logging.log4j.message">ThreadDumpMessage</A>
<DD>Generate a ThreadDumpMessage with no title.
<DT><A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html#ThreadDumpMessage(java.lang.String)"><B>ThreadDumpMessage(String)</B></A> - 
Constructor for class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html" title="class in org.apache.logging.log4j.message">ThreadDumpMessage</A>
<DD>Generate a ThreadDumpMessage with a title.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#throwing(T)"><B>throwing(T)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log an exception or error to be thrown.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#throwing(org.apache.logging.log4j.Level, T)"><B>throwing(Level, T)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log an exception or error to be thrown.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#throwing(T)"><B>throwing(T)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log an exception or error to be thrown.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#throwing(org.apache.logging.log4j.Level, T)"><B>throwing(Level, T)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log an exception or error to be thrown.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#THROWING_MARKER"><B>THROWING_MARKER</B></A> - 
Static variable in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Marker for throwing exceptions.
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#TIME_QUALITY"><B>TIME_QUALITY</B></A> - 
Static variable in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>RFC 5424 Time Quality.
<DT><A HREF="./org/apache/logging/log4j/message/TimestampMessage.html" title="interface in org.apache.logging.log4j.message"><B>TimestampMessage</B></A> - Interface in <A HREF="./org/apache/logging/log4j/message/package-summary.html">org.apache.logging.log4j.message</A><DD>Messages that use this interface will cause the timestamp in the message to be used instead of the timestmap in
 the LogEvent.<DT><A HREF="./org/apache/logging/log4j/Level.html#toLevel(java.lang.String)"><B>toLevel(String)</B></A> - 
Static method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Convert the string passed as argument to a level.
<DT><A HREF="./org/apache/logging/log4j/Level.html#toLevel(java.lang.String, org.apache.logging.log4j.Level)"><B>toLevel(String, Level)</B></A> - 
Static method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Convert the string passed as argument to a level.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ObjectMessage.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ObjectMessage.html" title="class in org.apache.logging.log4j.message">ObjectMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ParameterizedMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/SimpleMessage.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/SimpleMessage.html" title="class in org.apache.logging.log4j.message">SimpleMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataId.html" title="class in org.apache.logging.log4j.message">StructuredDataId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html" title="class in org.apache.logging.log4j.message">ThreadDumpMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(java.lang.String)"><B>trace(String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#TRACE"><CODE>TRACE</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.Marker, java.lang.String)"><B>trace(Marker, String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#TRACE"><CODE>TRACE</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(java.lang.String, java.lang.Throwable)"><B>trace(String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>TRACE</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>trace(Marker, String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>TRACE</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(java.lang.Object)"><B>trace(Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#TRACE"><CODE>TRACE</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.Marker, java.lang.Object)"><B>trace(Marker, Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#TRACE"><CODE>TRACE</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(java.lang.Object, java.lang.Throwable)"><B>trace(Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>TRACE</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>trace(Marker, Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>TRACE</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(java.lang.String, java.lang.Object...)"><B>trace(String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>TRACE</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>trace(Marker, String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>TRACE</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.message.Message)"><B>trace(Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>trace(Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>trace(Marker, Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#trace(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>trace(Marker, Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(java.lang.String)"><B>trace(String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#TRACE"><CODE>TRACE</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.Marker, java.lang.String)"><B>trace(Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#TRACE"><CODE>TRACE</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(java.lang.String, java.lang.Throwable)"><B>trace(String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>TRACE</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>trace(Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>TRACE</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(java.lang.Object)"><B>trace(Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#TRACE"><CODE>TRACE</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.Marker, java.lang.Object)"><B>trace(Marker, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#TRACE"><CODE>TRACE</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(java.lang.Object, java.lang.Throwable)"><B>trace(Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>TRACE</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>trace(Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>TRACE</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(java.lang.String, java.lang.Object...)"><B>trace(String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>TRACE</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>trace(Marker, String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>TRACE</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.message.Message)"><B>trace(Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>trace(Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>trace(Marker, Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the TRACE level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#trace(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>trace(Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the TRACE level.
</DL>
<HR>
<A NAME="_V_"><!-- --></A><H2>
<B>V</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#validate(java.lang.String, java.lang.String)"><B>validate(String, String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.html" title="class in org.apache.logging.log4j.message">MapMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html#validate(java.lang.String, java.lang.String)"><B>validate(String, String)</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/StructuredDataMessage.html" title="class in org.apache.logging.log4j.message">StructuredDataMessage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/logging/log4j/Level.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.MapFormat.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.MapFormat.html" title="enum in org.apache.logging.log4j.message">MapMessage.MapFormat</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/logging/log4j/Level.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Level.html" title="enum in org.apache.logging.log4j">Level</A>
<DD>Returns an array containing the constants of this enum type, in
the order they are declared.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.MapFormat.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/MapMessage.MapFormat.html" title="enum in org.apache.logging.log4j.message">MapMessage.MapFormat</A>
<DD>Returns an array containing the constants of this enum type, in
the order they are declared.
</DL>
<HR>
<A NAME="_W_"><!-- --></A><H2>
<B>W</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(java.lang.String)"><B>warn(String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#WARN"><CODE>WARN</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.Marker, java.lang.String)"><B>warn(Marker, String)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#WARN"><CODE>WARN</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(java.lang.String, java.lang.Throwable)"><B>warn(String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>WARN</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>warn(Marker, String, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>WARN</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(java.lang.Object)"><B>warn(Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#WARN"><CODE>WARN</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.Marker, java.lang.Object)"><B>warn(Marker, Object)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#WARN"><CODE>WARN</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(java.lang.Object, java.lang.Throwable)"><B>warn(Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>WARN</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>warn(Marker, Object, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message at the <code>WARN</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(java.lang.String, java.lang.Object...)"><B>warn(String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>WARN</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>warn(Marker, String, Object...)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with parameters at the <code>WARN</code> level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.message.Message)"><B>warn(Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the WARN level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>warn(Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the WARN level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>warn(Marker, Message)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the WARN level.
<DT><A HREF="./org/apache/logging/log4j/Logger.html#warn(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>warn(Marker, Message, Throwable)</B></A> - 
Method in interface org.apache.logging.log4j.<A HREF="./org/apache/logging/log4j/Logger.html" title="interface in org.apache.logging.log4j">Logger</A>
<DD>Log a message with the specific Marker at the WARN level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(java.lang.String)"><B>warn(String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#WARN"><CODE>WARN</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.Marker, java.lang.String)"><B>warn(Marker, String)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#WARN"><CODE>WARN</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(java.lang.String, java.lang.Throwable)"><B>warn(String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>WARN</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Throwable)"><B>warn(Marker, String, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>WARN</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.Marker, java.lang.Object)"><B>warn(Marker, Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#WARN"><CODE>WARN</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(java.lang.Object)"><B>warn(Object)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message object with the <A HREF="./org/apache/logging/log4j/Level.html#WARN"><CODE>WARN</CODE></A> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(java.lang.Object, java.lang.Throwable)"><B>warn(Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>WARN</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.Marker, java.lang.Object, java.lang.Throwable)"><B>warn(Marker, Object, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message at the <code>WARN</code> level including the
 stack trace of the <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A><code>t</code> passed as parameter.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(java.lang.String, java.lang.Object...)"><B>warn(String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>WARN</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object...)"><B>warn(Marker, String, Object...)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with parameters at the <code>WARN</code> level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.message.Message)"><B>warn(Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the WARN level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>warn(Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the WARN level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message)"><B>warn(Marker, Message)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the WARN level.
<DT><A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html#warn(org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable)"><B>warn(Marker, Message, Throwable)</B></A> - 
Method in class org.apache.logging.log4j.spi.<A HREF="./org/apache/logging/log4j/spi/AbstractLogger.html" title="class in org.apache.logging.log4j.spi">AbstractLogger</A>
<DD>Log a message with the specific Marker at the WARN level.
<DT><A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/ThreadDumpMessage.html" title="class in org.apache.logging.log4j.message">ThreadDumpMessage</A>
<DD>Creates a ThreadDumpMessageProxy that can be serialized.
</DL>
<HR>
<A HREF="#_A_">A</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> 

<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright © 1999-2012 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved. Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the             Apache Logging project logo are trademarks of The Apache Software Foundation.
</BODY>
</HTML>
