blob: 335ea3854c0faeb60308a75609e64d96194193a0 [file] [log] [blame]
<html>
<head>
<title>
log4cxx - Documentation
</title>
<link href="../css/doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body bgcolor="#ffffff" text="#000000" link="#525D76">
<!-- START Header table -->
<table border="0" cellspacing="0" width="90%">
<!-- TOP IMAGE -->
<tr>
<td colspan="2">
<a href="http://logging.apache.org">
<img src="http://logging.apache.org/images/ls-logo.jpg" align="left" border="0"/>
</a>
</td>
</tr>
</table>
<!-- END Header table -->
<!-- START main table -->
<table id="main" border="0" width="90%" cellspacing="2" cellpadding="0">
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr>
<!-- LEFT SIDE NAVIGATION -->
<td id="navbar" valign="top">
<!-- ============================================================ -->
<table id="navbar" border="0" cellspacing="0" cellpadding="0">
<tr >
<td class="navbarHeader" nowrap="true">
<strong>Apache</strong>
</td>
</tr>
<tr><td class="navbarItem"><small> <a href="http://www.apache.org">Apache Home</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="http://logging.apache.org/">Logging Services</a>
</small></td></tr>
<tr >
<td class="navbarHeader" nowrap="true">
<strong>log4cxx project</strong>
</td>
</tr>
<tr><td class="navbarItem"><small> <a href="../index.html">About</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../news.html">News</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../team.html">Team</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../manual/index.html">Documentation</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../performance.html">Performance</a>
</small></td></tr>
<tr><td class="navbarItem"><small> <a href="../download.html">Download</a>
</small></td></tr>
</table>
</td>
<td id="mainContents" align="left" valign="top">
<hr>
<!-- Generated by Doxygen 1.3.5 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
<h1>AppenderSkeleton Class Reference</h1>Inheritance diagram for AppenderSkeleton:<p><center><img src="classlog4cxx_1_1AppenderSkeleton__inherit__graph.png" border="0" usemap="#AppenderSkeleton__inherit__map" alt="Inheritance graph"></center>
<map name="AppenderSkeleton__inherit__map">
<area href="classlog4cxx_1_1AsyncAppender.html" shape="rect" coords="333,5,445,23" alt="">
<area href="classlog4cxx_1_1db_1_1ODBCAppender.html" shape="rect" coords="333,47,445,66" alt="">
<area href="classlog4cxx_1_1net_1_1SMTPAppender.html" shape="rect" coords="335,90,444,109" alt="">
<area href="classlog4cxx_1_1net_1_1SocketAppender.html" shape="rect" coords="332,133,447,151" alt="">
<area href="classlog4cxx_1_1net_1_1SocketHubAppender.html" shape="rect" coords="320,175,459,194" alt="">
<area href="classlog4cxx_1_1net_1_1SyslogAppender.html" shape="rect" coords="333,218,445,237" alt="">
<area href="classlog4cxx_1_1net_1_1TelnetAppender.html" shape="rect" coords="335,261,444,279" alt="">
<area href="classlog4cxx_1_1net_1_1XMLSocketAppender.html" shape="rect" coords="319,303,460,322" alt="">
<area href="classlog4cxx_1_1nt_1_1NTEventLogAppender.html" shape="rect" coords="317,346,461,365" alt="">
<area href="classlog4cxx_1_1WriterAppender.html" shape="rect" coords="336,389,443,407" alt="">
<area href="classlog4cxx_1_1Appender.html" shape="rect" coords="19,175,93,194" alt="">
<area href="classlog4cxx_1_1helpers_1_1ObjectImpl.html" shape="rect" coords="17,218,95,237" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for AppenderSkeleton:<p><center><img src="classlog4cxx_1_1AppenderSkeleton__coll__graph.png" border="0" usemap="#AppenderSkeleton__coll__map" alt="Collaboration graph"></center>
<map name="AppenderSkeleton__coll__map">
<area href="classlog4cxx_1_1Appender.html" shape="rect" coords="21,179,96,198" alt="">
<area href="classlog4cxx_1_1spi_1_1OptionHandler.html" shape="rect" coords="7,89,105,107" alt="">
<area href="classlog4cxx_1_1helpers_1_1Object.html" shape="rect" coords="81,17,135,35" alt="">
<area href="classlog4cxx_1_1helpers_1_1ObjectImpl.html" shape="rect" coords="101,134,179,153" alt="">
<area href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html" shape="rect" coords="171,179,245,198" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classlog4cxx_1_1AppenderSkeleton-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a1">finalize</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a2">activateOptions</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a3">setOption</a> (const String &amp;<a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p1">name</a>, const String &amp;value)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a4">addFilter</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a> &amp;newFilter)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a5">clearFilters</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::ErrorHandlerPtr</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a6">getErrorHandler</a> () const </td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a7">getFilter</a> () const </td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a8">getFirstFilter</a> () const </td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LayoutPtr</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a9">getLayout</a> () const </td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>const String &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a10">getName</a> () const </td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a11">getThreshold</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a12">isAsSevereAsThreshold</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp;level) const </td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a13">doAppend</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::LoggingEventPtr</a> &amp;event)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a14">setErrorHandler</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::ErrorHandlerPtr</a> &amp;eh)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a15">setLayout</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LayoutPtr</a> &amp;<a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p0">layout</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a16">setName</a> (const String &amp;<a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p1">name</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a17">setThreshold</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp;<a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p2">threshold</a>)</td></tr>
<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#b0">append</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::LoggingEventPtr</a> &amp;event)=0</td></tr>
<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LayoutPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p0">layout</a></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>String&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p1">name</a></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p2">threshold</a></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::ErrorHandlerPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p3">errorHandler</a></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p4">headFilter</a></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p5">tailFilter</a></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p6">closed</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Implementation base class for all appenders.<p>
This class provides the code for common functionality, such as support for threshold filtering and support for general filters.
<p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a2" doxytag="log4cxx::AppenderSkeleton::activateOptions" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void activateOptions </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Derived appenders should override this method if option structure requires it.
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1OptionHandler.html#a1">OptionHandler</a>.
<p>
Reimplemented in <a class="el" href="classlog4cxx_1_1ConsoleAppender.html#a6">ConsoleAppender</a>, <a class="el" href="classlog4cxx_1_1DailyRollingFileAppender.html#a5">DailyRollingFileAppender</a>, <a class="el" href="classlog4cxx_1_1FileAppender.html#a9">FileAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SMTPAppender.html#a4">SMTPAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SocketAppender.html#a4">SocketAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SocketHubAppender.html#a3">SocketHubAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SyslogAppender.html#a6">SyslogAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1TelnetAppender.html#a3">TelnetAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1XMLSocketAppender.html#a4">XMLSocketAppender</a>, and <a class="el" href="classlog4cxx_1_1nt_1_1NTEventLogAppender.html#a3">NTEventLogAppender</a>. </td>
</tr>
</table>
<a class="anchor" name="a4" doxytag="log4cxx::AppenderSkeleton::addFilter" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void addFilter </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>newFilter</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Add a filter to end of the filter list.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a1">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="b0" doxytag="log4cxx::AppenderSkeleton::append" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual void append </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::LoggingEventPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>event</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [protected, pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Subclasses of <code><a class="el" href="classlog4cxx_1_1AppenderSkeleton.html">AppenderSkeleton</a></code> should implement this method to perform actual logging. See also <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a13">AppenderSkeleton::doAppend</a> method.
<p>
Implemented in <a class="el" href="classlog4cxx_1_1AsyncAppender.html#a3">AsyncAppender</a>, <a class="el" href="classlog4cxx_1_1db_1_1ODBCAppender.html#a3">ODBCAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SMTPAppender.html#a5">SMTPAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SocketAppender.html#a9">SocketAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SocketHubAppender.html#a7">SocketHubAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SyslogAppender.html#a5">SyslogAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1TelnetAppender.html#b0">TelnetAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1XMLSocketAppender.html#a9">XMLSocketAppender</a>, <a class="el" href="classlog4cxx_1_1nt_1_1NTEventLogAppender.html#b0">NTEventLogAppender</a>, and <a class="el" href="classlog4cxx_1_1WriterAppender.html#a5">WriterAppender</a>. </td>
</tr>
</table>
<a class="anchor" name="a5" doxytag="log4cxx::AppenderSkeleton::clearFilters" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void clearFilters </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Clear the filters chain.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a3">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a13" doxytag="log4cxx::AppenderSkeleton::doAppend" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void doAppend </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::LoggingEventPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>event</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#b0">AppenderSkeleton::append</a> method.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a5">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a1" doxytag="log4cxx::AppenderSkeleton::finalize" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void finalize </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Finalize this appender by calling the derived class' <code>close</code> method. </td>
</tr>
</table>
<a class="anchor" name="a6" doxytag="log4cxx::AppenderSkeleton::getErrorHandler" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::ErrorHandlerPtr</a>&amp; getErrorHandler </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const<code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Return the currently set <a class="el" href="classlog4cxx_1_1spi_1_1ErrorHandler.html">spi::ErrorHandler</a> for this <a class="el" href="classlog4cxx_1_1Appender.html">Appender</a>.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a8">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a7" doxytag="log4cxx::AppenderSkeleton::getFilter" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a>&amp; getFilter </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const<code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns the head Filter.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a2">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a8" doxytag="log4cxx::AppenderSkeleton::getFirstFilter" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a>&amp; getFirstFilter </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const<code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Return the first filter in the filter chain for this <a class="el" href="classlog4cxx_1_1Appender.html">Appender</a>. The return value may be <code>0</code> if no is filter is set. </td>
</tr>
</table>
<a class="anchor" name="a9" doxytag="log4cxx::AppenderSkeleton::getLayout" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LayoutPtr</a>&amp; getLayout </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const<code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns the layout of this appender. The value may be 0.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a10">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a10" doxytag="log4cxx::AppenderSkeleton::getName" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const String&amp; getName </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const<code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns the name of this <a class="el" href="classlog4cxx_1_1Appender.html">Appender</a>.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a6">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a11" doxytag="log4cxx::AppenderSkeleton::getThreshold" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a>&amp; getThreshold </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns this appenders threshold level. See the <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a17">setThreshold</a> method for the meaning of this option. </td>
</tr>
</table>
<a class="anchor" name="a12" doxytag="log4cxx::AppenderSkeleton::isAsSevereAsThreshold" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> bool isAsSevereAsThreshold </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>level</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Check whether the message level is below the appender's threshold. If there is no threshold set, then the return value is always <code>true</code>. </td>
</tr>
</table>
<a class="anchor" name="a14" doxytag="log4cxx::AppenderSkeleton::setErrorHandler" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void setErrorHandler </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::ErrorHandlerPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>eh</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Set the <a class="el" href="classlog4cxx_1_1spi_1_1ErrorHandler.html">ErrorHandler</a> for this <a class="el" href="classlog4cxx_1_1Appender.html">Appender</a>.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a7">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a15" doxytag="log4cxx::AppenderSkeleton::setLayout" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void setLayout </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LayoutPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>layout</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Set the layout for this appender. Note that some appenders have their own (fixed) layouts or do not use one. For example, the <a class="el" href="classlog4cxx_1_1net_1_1SocketAppender.html">SocketAppender</a> ignores the layout set here.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a9">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a16" doxytag="log4cxx::AppenderSkeleton::setName" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void setName </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>name</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Set the name of this <a class="el" href="classlog4cxx_1_1Appender.html">Appender</a>.
<p>
Implements <a class="el" href="classlog4cxx_1_1Appender.html#a11">Appender</a>. </td>
</tr>
</table>
<a class="anchor" name="a3" doxytag="log4cxx::AppenderSkeleton::setOption" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void setOption </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const String &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const String &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>value</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Set <code>option</code> to <code>value</code>.<p>
The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#a2">activateOptions</a> is called.
<p>
Implements <a class="el" href="classlog4cxx_1_1spi_1_1OptionHandler.html#a2">OptionHandler</a>.
<p>
Reimplemented in <a class="el" href="classlog4cxx_1_1ConsoleAppender.html#a7">ConsoleAppender</a>, <a class="el" href="classlog4cxx_1_1DailyRollingFileAppender.html#a6">DailyRollingFileAppender</a>, <a class="el" href="classlog4cxx_1_1db_1_1ODBCAppender.html#a2">ODBCAppender</a>, <a class="el" href="classlog4cxx_1_1FileAppender.html#a10">FileAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SMTPAppender.html#a3">SMTPAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SocketAppender.html#a5">SocketAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SocketHubAppender.html#a4">SocketHubAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1SyslogAppender.html#a7">SyslogAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1TelnetAppender.html#a4">TelnetAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1XMLSocketAppender.html#a5">XMLSocketAppender</a>, <a class="el" href="classlog4cxx_1_1nt_1_1NTEventLogAppender.html#a5">NTEventLogAppender</a>, and <a class="el" href="classlog4cxx_1_1RollingFileAppender.html#a9">RollingFileAppender</a>. </td>
</tr>
</table>
<a class="anchor" name="a17" doxytag="log4cxx::AppenderSkeleton::setThreshold" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void setThreshold </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>threshold</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Set the threshold level. All log events with lower level than the threshold level are ignored by the appender.<p>
In configuration files this option is specified by setting the value of the <b>Threshold</b> option to a level string, such as "DEBUG", "INFO" and so on. </td>
</tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="p6" doxytag="log4cxx::AppenderSkeleton::closed" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> bool <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p6">closed</a><code> [protected]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Is this appender closed? </td>
</tr>
</table>
<a class="anchor" name="p3" doxytag="log4cxx::AppenderSkeleton::errorHandler" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::ErrorHandlerPtr</a> <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p3">errorHandler</a><code> [protected]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
It is assumed and enforced that errorHandler is never null. </td>
</tr>
</table>
<a class="anchor" name="p4" doxytag="log4cxx::AppenderSkeleton::headFilter" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a> <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p4">headFilter</a><code> [protected]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The first filter in the filter chain. Set to <code>null</code> initially. </td>
</tr>
</table>
<a class="anchor" name="p0" doxytag="log4cxx::AppenderSkeleton::layout" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LayoutPtr</a> <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p0">layout</a><code> [protected]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The layout variable does not need to be set if the appender implementation has its own layout. </td>
</tr>
</table>
<a class="anchor" name="p1" doxytag="log4cxx::AppenderSkeleton::name" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> String <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p1">name</a><code> [protected]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Appenders are named. </td>
</tr>
</table>
<a class="anchor" name="p5" doxytag="log4cxx::AppenderSkeleton::tailFilter" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">spi::FilterPtr</a> <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p5">tailFilter</a><code> [protected]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The last filter in the filter chain. </td>
</tr>
</table>
<a class="anchor" name="p2" doxytag="log4cxx::AppenderSkeleton::threshold" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classlog4cxx_1_1helpers_1_1ObjectPtrT.html">LevelPtr</a> <a class="el" href="classlog4cxx_1_1AppenderSkeleton.html#p2">threshold</a><code> [protected]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
There is no level threshold filtering by default. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li>appenderskeleton.h<li>appenderskeleton.cpp</ul>
</td>
</tr>
<!-- FOOTER -->
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr><td colspan="2">
<div align="center"><font color="#525D76" size="-1"><em>
Copyright &#169; 1999-2004, Apache Software Foundation
</em></font></div>
</td></tr>
</table>
<!-- END main table -->
</body>
</html>
<!-- end the processing -->