blob: 63d9f23d312fb4dc3c12e1c969b11688b94346e8 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.12) on Tue Sep 06 11:23:22 EDT 2022 -->
<title>DBAppender (Apache Chainsaw 2.1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-09-06">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DBAppender (Apache Chainsaw 2.1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DBAppender.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.log4j.db</a></div>
<h2 title="Class DBAppender" class="title">Class DBAppender</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.log4j.AppenderSkeleton</li>
<li>
<ul class="inheritance">
<li>org.apache.log4j.db.DBAppender</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>org.apache.log4j.Appender</code>, <code>org.apache.log4j.spi.OptionHandler</code>, <code>org.apache.log4j.xml.UnrecognizedElementHandler</code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">DBAppender</span>
extends org.apache.log4j.AppenderSkeleton
implements org.apache.log4j.xml.UnrecognizedElementHandler</pre>
<div class="block">The DBAppender inserts loggin events into three database tables in a format
independent of the Java programming language. The three tables that
DBAppender inserts to must exists before DBAppender can be used. These tables
may be created with the help of SQL scripts found in the
<em>src/java/org/apache/log4j/db/dialect</em> directory. There is a
specific script for each of the most popular database systems. If the script
for your particular type of database system is missing, it should be quite
easy to write one, taking example on the already existing scripts. If you
send them to us, we will gladly include missing scripts in future releases.
<p>
<p>
If the JDBC driver you are using supports the
<a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html?is-external=true#getGeneratedKeys()" title="class or interface in java.sql" class="externalLink"><code>Statement.getGeneratedKeys()</code></a>method introduced in JDBC 3.0
specification, then you are all set. Otherwise, there must be an
<a href="dialect/SQLDialect.html" title="interface in org.apache.log4j.db.dialect"><code>SQLDialect</code></a>appropriate for your database system. Currently, we have
dialects for PostgreSQL, MySQL, Oracle and MsSQL. As mentioed previously, an
SQLDialect is required only if the JDBC driver for your database system does
not support the <a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html?is-external=true#getGeneratedKeys()" title="class or interface in java.sql" class="externalLink"><code>getGeneratedKeys</code></a>
method.
</p>
<p>
<table border="1" cellpadding="4">
<caption>supported dialects</caption>
<tr>
<th>RDBMS</th>
<th>supports <br><code>getGeneratedKeys()</code> method</th>
<th>specific <br>SQLDialect support</th>
<tr>
<tr>
<td>PostgreSQL</td>
<td align="center">NO</td>
<td>present and used</td>
<tr>
<tr>
<td>MySQL</td>
<td align="center">YES</td>
<td>present, but not actually needed or used</td>
<tr>
<tr>
<td>Oracle</td>
<td align="center">YES</td>
<td>present, but not actually needed or used</td>
<tr>
<tr>
<td>DB2</td>
<td align="center">YES</td>
<td>not present, and not needed or used</td>
<tr>
<tr>
<td>MsSQL</td>
<td align="center">YES</td>
<td>not present, and not needed or used</td>
<tr>
<tr>
<td>HSQL</td>
<td align="center">NO</td>
<td>present and used</td>
<tr>
<p>
</table>
<p>
<b>Performance: </b> Experiments show that writing a single event into the
database takes approximately 50 milliseconds, on a "standard" PC. If pooled
connections are used, this figure drops to under 10 milliseconds. Note that
most JDBC drivers already ship with connection pooling support.
</p>
<p>
<p>
<p>
<p>
<b>Configuration </b> DBAppender can be configured programmatically, or using
<code>JoranConfigurator</code>. Example
scripts can be found in the <em>tests/input/db</em> directory.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Ceki G&uuml;lc&uuml;, Ray DeCampo</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.log4j.AppenderSkeleton">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.log4j.AppenderSkeleton</h3>
<code>closed, errorHandler, headFilter, layout, name, tailFilter, threshold</code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DBAppender</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#activateOptions()">activateOptions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#append(org.apache.log4j.spi.LoggingEvent)">append</a></span>&#8203;(org.apache.log4j.spi.LoggingEvent&nbsp;event)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="ConnectionSource.html" title="interface in org.apache.log4j.db">ConnectionSource</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConnectionSource()">getConnectionSource</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocationInfo()">getLocationInfo</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns value of the <b>LocationInfo </b> property which determines whether
caller's location info is written to the database.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseUnrecognizedElement(org.w3c.dom.Element,java.util.Properties)">parseUnrecognizedElement</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom" class="externalLink">Element</a>&nbsp;element,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink">Properties</a>&nbsp;props)</code></th>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requiresLayout()">requiresLayout</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets whether appender requires a layout.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConnectionSource(org.apache.log4j.db.ConnectionSource)">setConnectionSource</a></span>&#8203;(<a href="ConnectionSource.html" title="interface in org.apache.log4j.db">ConnectionSource</a>&nbsp;connectionSource)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLocationInfo(boolean)">setLocationInfo</a></span>&#8203;(boolean&nbsp;locationInfo)</code></th>
<td class="colLast">
<div class="block">If true, the information written to the database will include caller's
location information.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.log4j.AppenderSkeleton">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.log4j.AppenderSkeleton</h3>
<code>addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setErrorHandler, setLayout, setName, setThreshold</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DBAppender</h4>
<pre>public&nbsp;DBAppender()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="activateOptions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activateOptions</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;activateOptions()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>activateOptions</code>&nbsp;in interface&nbsp;<code>org.apache.log4j.spi.OptionHandler</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>activateOptions</code>&nbsp;in class&nbsp;<code>org.apache.log4j.AppenderSkeleton</code></dd>
</dl>
</li>
</ul>
<a id="getConnectionSource()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConnectionSource</h4>
<pre class="methodSignature">public&nbsp;<a href="ConnectionSource.html" title="interface in org.apache.log4j.db">ConnectionSource</a>&nbsp;getConnectionSource()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the connectionSource.</dd>
</dl>
</li>
</ul>
<a id="setConnectionSource(org.apache.log4j.db.ConnectionSource)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConnectionSource</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setConnectionSource&#8203;(<a href="ConnectionSource.html" title="interface in org.apache.log4j.db">ConnectionSource</a>&nbsp;connectionSource)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>connectionSource</code> - The connectionSource to set.</dd>
</dl>
</li>
</ul>
<a id="append(org.apache.log4j.spi.LoggingEvent)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>append</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;append&#8203;(org.apache.log4j.spi.LoggingEvent&nbsp;event)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>append</code>&nbsp;in class&nbsp;<code>org.apache.log4j.AppenderSkeleton</code></dd>
</dl>
</li>
</ul>
<a id="close()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;close()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>org.apache.log4j.Appender</code></dd>
</dl>
</li>
</ul>
<a id="getLocationInfo()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocationInfo</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;getLocationInfo()</pre>
<div class="block">Returns value of the <b>LocationInfo </b> property which determines whether
caller's location info is written to the database.</div>
</li>
</ul>
<a id="setLocationInfo(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLocationInfo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setLocationInfo&#8203;(boolean&nbsp;locationInfo)</pre>
<div class="block">If true, the information written to the database will include caller's
location information. Due to performance concerns, by default no location
information is written to the database.</div>
</li>
</ul>
<a id="requiresLayout()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiresLayout</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;requiresLayout()</pre>
<div class="block">Gets whether appender requires a layout.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>requiresLayout</code>&nbsp;in interface&nbsp;<code>org.apache.log4j.Appender</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>false</dd>
</dl>
</li>
</ul>
<a id="parseUnrecognizedElement(org.w3c.dom.Element,java.util.Properties)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>parseUnrecognizedElement</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;parseUnrecognizedElement&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/org/w3c/dom/Element.html?is-external=true" title="class or interface in org.w3c.dom" class="externalLink">Element</a>&nbsp;element,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink">Properties</a>&nbsp;props)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>parseUnrecognizedElement</code>&nbsp;in interface&nbsp;<code>org.apache.log4j.xml.UnrecognizedElementHandler</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DBAppender.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><p align="center">Copyright &#169; 2002-2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.<br /> Apache Logging, Apache Log4j, Log4j, Apache Chainsaw, Chainsaw, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p></small></p>
</footer>
</body>
</html>