<!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_31) on Sat Jun 09 14:22:39 MST 2012 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Index (Log4J API 2.0-alpha1-SNAPSHOT API)
</TITLE>

<META NAME="date" CONTENT="2012-06-09">

<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-SNAPSHOT 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> <A HREF="#_X_">X</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#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>Format the Structured data as described in RFC 5424.
<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/FormattedMessage.html" title="interface in org.apache.logging.log4j.message"><B>FormattedMessage</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 have a format String attached to it.<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/FormattedMessage.html#getFormat()"><B>getFormat()</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/FormattedMessage.html" title="interface in org.apache.logging.log4j.message">FormattedMessage</A>
<DD>Return the message format.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#getFormat()"><B>getFormat()</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 format String.
<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/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/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/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/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.
</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/FormattedMessage.html#setFormat(java.lang.String)"><B>setFormat(String)</B></A> - 
Method in interface org.apache.logging.log4j.message.<A HREF="./org/apache/logging/log4j/message/FormattedMessage.html" title="interface in org.apache.logging.log4j.message">FormattedMessage</A>
<DD>Set the message format.
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#setFormat(java.lang.String)"><B>setFormat(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>The format String.
<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/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/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.
</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 NAME="_X_"><!-- --></A><H2>
<B>X</B></H2>
<DL>
<DT><A HREF="./org/apache/logging/log4j/message/MapMessage.html#XML"><B>XML</B></A> - 
Static variable 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>When set as the format specifier causes the Map to be formatted as XML.
</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> <A HREF="#_X_">X</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 &#169; 1999-2012 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
