blob: 2d3bfa297901d589246e5df7d53bb92113c2b379 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Apache log4cxx: AppenderSkeleton Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname"><a href="http://logging.apache.org/log4cxx">Apache log4cxx</a>
&#160;<span id="projectnumber">Version 0.10.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classlog4cxx_1_1_appender_skeleton.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classlog4cxx_1_1_appender_skeleton-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">AppenderSkeleton Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Implementation base class for all appenders.
<a href="classlog4cxx_1_1_appender_skeleton.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for AppenderSkeleton:</div>
<div class="dyncontent">
<div class="center">
<img src="classlog4cxx_1_1_appender_skeleton.png" usemap="#AppenderSkeleton_map" alt=""/>
<map id="AppenderSkeleton_map" name="AppenderSkeleton_map">
<area href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. " alt="Appender" shape="rect" coords="0,112,175,136"/>
<area href="classlog4cxx_1_1helpers_1_1_object_impl.html" title="Implementation class for Object. " alt="ObjectImpl" shape="rect" coords="185,112,360,136"/>
<area href="classlog4cxx_1_1spi_1_1_option_handler.html" title="A string based interface to configure package components. " alt="OptionHandler" shape="rect" coords="0,56,175,80"/>
<area href="classlog4cxx_1_1helpers_1_1_object.html" title="base class for java-like objects. " alt="Object" shape="rect" coords="185,56,360,80"/>
<area href="classlog4cxx_1_1helpers_1_1_object.html" title="base class for java-like objects. " alt="Object" shape="rect" coords="0,0,175,24"/>
<area href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously. " alt="AsyncAppender" shape="rect" coords="277,224,452,248"/>
<area href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html" alt="ODBCAppender" shape="rect" coords="277,280,452,304"/>
<area href="classlog4cxx_1_1net_1_1_s_m_t_p_appender.html" title="Send an e-mail when a specific logging event occurs, typically on errors or fatal errors..." alt="SMTPAppender" shape="rect" coords="277,336,452,360"/>
<area href="classlog4cxx_1_1net_1_1_socket_appender_skeleton.html" title="Abstract base class for SocketAppender and XMLSocketAppender. " alt="SocketAppenderSkeleton" shape="rect" coords="277,392,452,416"/>
<area href="classlog4cxx_1_1net_1_1_socket_hub_appender.html" title="Sends LoggingEvent objects to a set of remote log servers, usually a SocketNode. " alt="SocketHubAppender" shape="rect" coords="277,448,452,472"/>
<area href="classlog4cxx_1_1net_1_1_syslog_appender.html" title="Use SyslogAppender to send log messages to a remote syslog daemon. " alt="SyslogAppender" shape="rect" coords="277,504,452,528"/>
<area href="classlog4cxx_1_1net_1_1_telnet_appender.html" alt="TelnetAppender" shape="rect" coords="277,560,452,584"/>
<area href="classlog4cxx_1_1nt_1_1_n_t_event_log_appender.html" title="Appends log events to NT EventLog. " alt="NTEventLogAppender" shape="rect" coords="277,616,452,640"/>
<area href="classlog4cxx_1_1nt_1_1_output_debug_string_appender.html" alt="OutputDebugStringAppender" shape="rect" coords="277,672,452,696"/>
<area href="classlog4cxx_1_1_writer_appender.html" title="WriterAppender appends log events to a standard output stream. " alt="WriterAppender" shape="rect" coords="277,728,452,752"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a634ba3ed7cb419659613107766cd826a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a634ba3ed7cb419659613107766cd826a">AppenderSkeleton</a> ()</td></tr>
<tr class="separator:a634ba3ed7cb419659613107766cd826a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a600b7815b22ec8cec8a9709cb78a42aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a600b7815b22ec8cec8a9709cb78a42aa">AppenderSkeleton</a> (const <a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af1f4e6a2229d95a18324c4e7fa71be65">layout</a>)</td></tr>
<tr class="separator:a600b7815b22ec8cec8a9709cb78a42aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0198815940c2715c84b0e04828cf8dfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a0198815940c2715c84b0e04828cf8dfa">addRef</a> () const </td></tr>
<tr class="separator:a0198815940c2715c84b0e04828cf8dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c31efee1904916b999395fa4d46a24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a55c31efee1904916b999395fa4d46a24">releaseRef</a> () const </td></tr>
<tr class="separator:a55c31efee1904916b999395fa4d46a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32d626626eee0bc4ade146973f6abb1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a32d626626eee0bc4ade146973f6abb1c">finalize</a> ()</td></tr>
<tr class="memdesc:a32d626626eee0bc4ade146973f6abb1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize this appender by calling the derived class' <code>close</code> method. <a href="#a32d626626eee0bc4ade146973f6abb1c">More...</a><br /></td></tr>
<tr class="separator:a32d626626eee0bc4ade146973f6abb1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe1aa95ede9cc9d0609905154129c0ba"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#abe1aa95ede9cc9d0609905154129c0ba">activateOptions</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;)</td></tr>
<tr class="memdesc:abe1aa95ede9cc9d0609905154129c0ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derived appenders should override this method if option structure requires it. <a href="#abe1aa95ede9cc9d0609905154129c0ba">More...</a><br /></td></tr>
<tr class="separator:abe1aa95ede9cc9d0609905154129c0ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee5023c29cca9dc68164b22a01cb7c6e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#aee5023c29cca9dc68164b22a01cb7c6e">setOption</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;option, const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;value)</td></tr>
<tr class="memdesc:aee5023c29cca9dc68164b22a01cb7c6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set <code>option</code> to <code>value</code>. <a href="#aee5023c29cca9dc68164b22a01cb7c6e">More...</a><br /></td></tr>
<tr class="separator:aee5023c29cca9dc68164b22a01cb7c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a4525ba6d2efe017934bbd867186ec3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a8a4525ba6d2efe017934bbd867186ec3">addFilter</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> &amp;newFilter)</td></tr>
<tr class="memdesc:a8a4525ba6d2efe017934bbd867186ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a filter to end of the filter list. <a href="#a8a4525ba6d2efe017934bbd867186ec3">More...</a><br /></td></tr>
<tr class="separator:a8a4525ba6d2efe017934bbd867186ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13013b8fd73be124730ec9f299c234d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af13013b8fd73be124730ec9f299c234d">clearFilters</a> ()</td></tr>
<tr class="memdesc:af13013b8fd73be124730ec9f299c234d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the filters chain. <a href="#af13013b8fd73be124730ec9f299c234d">More...</a><br /></td></tr>
<tr class="separator:af13013b8fd73be124730ec9f299c234d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68195e289d2c9cb19bd5751e59d6d892"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a68195e289d2c9cb19bd5751e59d6d892">getErrorHandler</a> () const </td></tr>
<tr class="memdesc:a68195e289d2c9cb19bd5751e59d6d892"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the currently set <a class="el" href="classlog4cxx_1_1spi_1_1_error_handler.html" title="Appenders may delegate their error handling to ErrorHandlers. ">spi::ErrorHandler</a> for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#a68195e289d2c9cb19bd5751e59d6d892">More...</a><br /></td></tr>
<tr class="separator:a68195e289d2c9cb19bd5751e59d6d892"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a459cdb3654725c5dbc68ac4e4a8b980e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a459cdb3654725c5dbc68ac4e4a8b980e">getFilter</a> () const </td></tr>
<tr class="memdesc:a459cdb3654725c5dbc68ac4e4a8b980e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the head Filter. <a href="#a459cdb3654725c5dbc68ac4e4a8b980e">More...</a><br /></td></tr>
<tr class="separator:a459cdb3654725c5dbc68ac4e4a8b980e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65d9c0a259578f6bb448f722bf9b13b9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a65d9c0a259578f6bb448f722bf9b13b9">getFirstFilter</a> () const </td></tr>
<tr class="memdesc:a65d9c0a259578f6bb448f722bf9b13b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the first filter in the filter chain for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#a65d9c0a259578f6bb448f722bf9b13b9">More...</a><br /></td></tr>
<tr class="separator:a65d9c0a259578f6bb448f722bf9b13b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af54e877f133079a04e7c210c0d3ad5dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af54e877f133079a04e7c210c0d3ad5dc">getLayout</a> () const </td></tr>
<tr class="memdesc:af54e877f133079a04e7c210c0d3ad5dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the layout of this appender. <a href="#af54e877f133079a04e7c210c0d3ad5dc">More...</a><br /></td></tr>
<tr class="separator:af54e877f133079a04e7c210c0d3ad5dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac22a8d65fdc07f5b0e52c935b0ee055f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#ac22a8d65fdc07f5b0e52c935b0ee055f">getName</a> () const </td></tr>
<tr class="memdesc:ac22a8d65fdc07f5b0e52c935b0ee055f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#ac22a8d65fdc07f5b0e52c935b0ee055f">More...</a><br /></td></tr>
<tr class="separator:ac22a8d65fdc07f5b0e52c935b0ee055f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a784a1140df55e25c4162f382b9ad47be"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelog4cxx.html#ae5a3f62e1b8b965953cbddfda82c53b5">LevelPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a784a1140df55e25c4162f382b9ad47be">getThreshold</a> ()</td></tr>
<tr class="memdesc:a784a1140df55e25c4162f382b9ad47be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns this appenders threshold level. <a href="#a784a1140df55e25c4162f382b9ad47be">More...</a><br /></td></tr>
<tr class="separator:a784a1140df55e25c4162f382b9ad47be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40984cbecea40b828eba6271a14c2b4a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a40984cbecea40b828eba6271a14c2b4a">isAsSevereAsThreshold</a> (const <a class="el" href="namespacelog4cxx.html#ae5a3f62e1b8b965953cbddfda82c53b5">LevelPtr</a> &amp;level) const </td></tr>
<tr class="memdesc:a40984cbecea40b828eba6271a14c2b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether the message level is below the appender's threshold. <a href="#a40984cbecea40b828eba6271a14c2b4a">More...</a><br /></td></tr>
<tr class="separator:a40984cbecea40b828eba6271a14c2b4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2df87e9db87ebe5396ea94fb9c25c488"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a2df87e9db87ebe5396ea94fb9c25c488">doAppend</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;event, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a6c72571775abf91a74fade4e2c2b9af8">pool</a>)</td></tr>
<tr class="memdesc:a2df87e9db87ebe5396ea94fb9c25c488"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a4c08a91d859f636117f07463bb53fe41" title="Subclasses of AppenderSkeleton should implement this method to perform actual logging. ">AppenderSkeleton::append</a> method. <a href="#a2df87e9db87ebe5396ea94fb9c25c488">More...</a><br /></td></tr>
<tr class="separator:a2df87e9db87ebe5396ea94fb9c25c488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa040b30f61aa49ee862dba7d32e3c537"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#aa040b30f61aa49ee862dba7d32e3c537">setErrorHandler</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a> &amp;eh)</td></tr>
<tr class="memdesc:aa040b30f61aa49ee862dba7d32e3c537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the <a class="el" href="classlog4cxx_1_1spi_1_1_error_handler.html">ErrorHandler</a> for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#aa040b30f61aa49ee862dba7d32e3c537">More...</a><br /></td></tr>
<tr class="separator:aa040b30f61aa49ee862dba7d32e3c537"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a115922e0a4ce63e2145c8861aac07c7f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a115922e0a4ce63e2145c8861aac07c7f">setLayout</a> (const <a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> &amp;layout1)</td></tr>
<tr class="memdesc:a115922e0a4ce63e2145c8861aac07c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the layout for this appender. <a href="#a115922e0a4ce63e2145c8861aac07c7f">More...</a><br /></td></tr>
<tr class="separator:a115922e0a4ce63e2145c8861aac07c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87e335b8d195a30dbdfe18d5da24b047"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a87e335b8d195a30dbdfe18d5da24b047">setName</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;name1)</td></tr>
<tr class="memdesc:a87e335b8d195a30dbdfe18d5da24b047"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the name of this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. <a href="#a87e335b8d195a30dbdfe18d5da24b047">More...</a><br /></td></tr>
<tr class="separator:a87e335b8d195a30dbdfe18d5da24b047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09e9d86bbb2b7b2f94b3f7e74d3557a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a09e9d86bbb2b7b2f94b3f7e74d3557a4">setThreshold</a> (const <a class="el" href="namespacelog4cxx.html#ae5a3f62e1b8b965953cbddfda82c53b5">LevelPtr</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a084d52617254f80c575bc96187ff4474">threshold</a>)</td></tr>
<tr class="memdesc:a09e9d86bbb2b7b2f94b3f7e74d3557a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the threshold level. <a href="#a09e9d86bbb2b7b2f94b3f7e74d3557a4">More...</a><br /></td></tr>
<tr class="separator:a09e9d86bbb2b7b2f94b3f7e74d3557a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1_appender"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1_appender')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td></tr>
<tr class="memitem:a15a14100e46e406766b1c92c670948e1 inherit pub_methods_classlog4cxx_1_1_appender"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender.html#a15a14100e46e406766b1c92c670948e1">~Appender</a> ()</td></tr>
<tr class="separator:a15a14100e46e406766b1c92c670948e1 inherit pub_methods_classlog4cxx_1_1_appender"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6ee7eacbde6b379b68d954e44f6e549 inherit pub_methods_classlog4cxx_1_1_appender"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender.html#af6ee7eacbde6b379b68d954e44f6e549">close</a> ()=0</td></tr>
<tr class="memdesc:af6ee7eacbde6b379b68d954e44f6e549 inherit pub_methods_classlog4cxx_1_1_appender"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release any resources allocated within the appender such as file handles, network connections, etc. <a href="#af6ee7eacbde6b379b68d954e44f6e549">More...</a><br /></td></tr>
<tr class="separator:af6ee7eacbde6b379b68d954e44f6e549 inherit pub_methods_classlog4cxx_1_1_appender"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39fa88fc7fbd0a7f757b938e5d13b64b inherit pub_methods_classlog4cxx_1_1_appender"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender.html#a39fa88fc7fbd0a7f757b938e5d13b64b">requiresLayout</a> () const =0</td></tr>
<tr class="memdesc:a39fa88fc7fbd0a7f757b938e5d13b64b inherit pub_methods_classlog4cxx_1_1_appender"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configurators call this method to determine if the appender requires a layout. <a href="#a39fa88fc7fbd0a7f757b938e5d13b64b">More...</a><br /></td></tr>
<tr class="separator:a39fa88fc7fbd0a7f757b938e5d13b64b inherit pub_methods_classlog4cxx_1_1_appender"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1spi_1_1_option_handler')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html">OptionHandler</a></td></tr>
<tr class="memitem:ad773ac49843844af53fe553912ed63e5 inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#ad773ac49843844af53fe553912ed63e5">~OptionHandler</a> ()</td></tr>
<tr class="separator:ad773ac49843844af53fe553912ed63e5 inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1helpers_1_1_object"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1helpers_1_1_object')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td></tr>
<tr class="memitem:ae7b62e37794f297c0cede40ed0e84fcd inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classlog4cxx_1_1helpers_1_1_class.html">helpers::Class</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#ae7b62e37794f297c0cede40ed0e84fcd">getClass</a> () const </td></tr>
<tr class="separator:ae7b62e37794f297c0cede40ed0e84fcd inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5cc4f9ba1ea5c2f25bc4b1f0dac5dc5 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#ab5cc4f9ba1ea5c2f25bc4b1f0dac5dc5">~Object</a> ()</td></tr>
<tr class="separator:ab5cc4f9ba1ea5c2f25bc4b1f0dac5dc5 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ab1bb19059c1de23f8a35cdbc0b6a5c inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a0ab1bb19059c1de23f8a35cdbc0b6a5c">instanceof</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_class.html">Class</a> &amp;clazz) const =0</td></tr>
<tr class="separator:a0ab1bb19059c1de23f8a35cdbc0b6a5c inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04b3422e17b0a882538bbc99833ab9df inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a04b3422e17b0a882538bbc99833ab9df">cast</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_class.html">Class</a> &amp;clazz) const =0</td></tr>
<tr class="separator:a04b3422e17b0a882538bbc99833ab9df inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1helpers_1_1_object_impl')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html">ObjectImpl</a></td></tr>
<tr class="memitem:a5e6e9fc30dc1f098fee72d516ea0bad0 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#a5e6e9fc30dc1f098fee72d516ea0bad0">ObjectImpl</a> ()</td></tr>
<tr class="separator:a5e6e9fc30dc1f098fee72d516ea0bad0 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb974728bb3cb991285140c1aa57eed7 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#abb974728bb3cb991285140c1aa57eed7">~ObjectImpl</a> ()</td></tr>
<tr class="separator:abb974728bb3cb991285140c1aa57eed7 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0198815940c2715c84b0e04828cf8dfa inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#a0198815940c2715c84b0e04828cf8dfa">addRef</a> () const </td></tr>
<tr class="separator:a0198815940c2715c84b0e04828cf8dfa inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c31efee1904916b999395fa4d46a24 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#a55c31efee1904916b999395fa4d46a24">releaseRef</a> () const </td></tr>
<tr class="separator:a55c31efee1904916b999395fa4d46a24 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a4c08a91d859f636117f07463bb53fe41"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a4c08a91d859f636117f07463bb53fe41">append</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;event, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p)=0</td></tr>
<tr class="memdesc:a4c08a91d859f636117f07463bb53fe41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subclasses of <code><a class="el" href="classlog4cxx_1_1_appender_skeleton.html" title="Implementation base class for all appenders. ">AppenderSkeleton</a></code> should implement this method to perform actual logging. <a href="#a4c08a91d859f636117f07463bb53fe41">More...</a><br /></td></tr>
<tr class="separator:a4c08a91d859f636117f07463bb53fe41"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:af1f4e6a2229d95a18324c4e7fa71be65"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af1f4e6a2229d95a18324c4e7fa71be65">layout</a></td></tr>
<tr class="memdesc:af1f4e6a2229d95a18324c4e7fa71be65"><td class="mdescLeft">&#160;</td><td class="mdescRight">The layout variable does not need to be set if the appender implementation has its own layout. <a href="#af1f4e6a2229d95a18324c4e7fa71be65">More...</a><br /></td></tr>
<tr class="separator:af1f4e6a2229d95a18324c4e7fa71be65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9de136310b76f5d0aa8b40848216b167"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a9de136310b76f5d0aa8b40848216b167">name</a></td></tr>
<tr class="memdesc:a9de136310b76f5d0aa8b40848216b167"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appenders are named. <a href="#a9de136310b76f5d0aa8b40848216b167">More...</a><br /></td></tr>
<tr class="separator:a9de136310b76f5d0aa8b40848216b167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a084d52617254f80c575bc96187ff4474"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx.html#ae5a3f62e1b8b965953cbddfda82c53b5">LevelPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a084d52617254f80c575bc96187ff4474">threshold</a></td></tr>
<tr class="memdesc:a084d52617254f80c575bc96187ff4474"><td class="mdescLeft">&#160;</td><td class="mdescRight">There is no level threshold filtering by default. <a href="#a084d52617254f80c575bc96187ff4474">More...</a><br /></td></tr>
<tr class="separator:a084d52617254f80c575bc96187ff4474"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6afac50bae7fd8b7c2b7e7984918298"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#ae6afac50bae7fd8b7c2b7e7984918298">errorHandler</a></td></tr>
<tr class="memdesc:ae6afac50bae7fd8b7c2b7e7984918298"><td class="mdescLeft">&#160;</td><td class="mdescRight">It is assumed and enforced that errorHandler is never null. <a href="#ae6afac50bae7fd8b7c2b7e7984918298">More...</a><br /></td></tr>
<tr class="separator:ae6afac50bae7fd8b7c2b7e7984918298"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d297ecc2f5fbfa373d9ad7a26ad51a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a6d297ecc2f5fbfa373d9ad7a26ad51a7">headFilter</a></td></tr>
<tr class="memdesc:a6d297ecc2f5fbfa373d9ad7a26ad51a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The first filter in the filter chain. <a href="#a6d297ecc2f5fbfa373d9ad7a26ad51a7">More...</a><br /></td></tr>
<tr class="separator:a6d297ecc2f5fbfa373d9ad7a26ad51a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b816fdac60684ae1095e81d2bfdaa46"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a0b816fdac60684ae1095e81d2bfdaa46">tailFilter</a></td></tr>
<tr class="memdesc:a0b816fdac60684ae1095e81d2bfdaa46"><td class="mdescLeft">&#160;</td><td class="mdescRight">The last filter in the filter chain. <a href="#a0b816fdac60684ae1095e81d2bfdaa46">More...</a><br /></td></tr>
<tr class="separator:a0b816fdac60684ae1095e81d2bfdaa46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a624c24d3973e790d23212b57f13e894b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a624c24d3973e790d23212b57f13e894b">closed</a></td></tr>
<tr class="memdesc:a624c24d3973e790d23212b57f13e894b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is this appender closed? <a href="#a624c24d3973e790d23212b57f13e894b">More...</a><br /></td></tr>
<tr class="separator:a624c24d3973e790d23212b57f13e894b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c72571775abf91a74fade4e2c2b9af8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a6c72571775abf91a74fade4e2c2b9af8">pool</a></td></tr>
<tr class="separator:a6c72571775abf91a74fade4e2c2b9af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa48227a58e71081f489370bf534ed7ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_mutex.html">log4cxx::helpers::Mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html#aa48227a58e71081f489370bf534ed7ac">mutex</a></td></tr>
<tr class="separator:aa48227a58e71081f489370bf534ed7ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classlog4cxx_1_1helpers_1_1_object_impl"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classlog4cxx_1_1helpers_1_1_object_impl')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html">ObjectImpl</a></td></tr>
<tr class="memitem:a88f2ae00c84f3f309965e6588ed158d4 inherit pro_attribs_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memItemLeft" align="right" valign="top">unsigned int volatile&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html#a88f2ae00c84f3f309965e6588ed158d4">ref</a></td></tr>
<tr class="separator:a88f2ae00c84f3f309965e6588ed158d4 inherit pro_attribs_classlog4cxx_1_1helpers_1_1_object_impl"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classlog4cxx_1_1helpers_1_1_object')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td></tr>
<tr class="memitem:a0bdbda4effe8938c1aca6d4397e5a39d inherit pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classlog4cxx_1_1helpers_1_1_class.html">helpers::Class</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a0bdbda4effe8938c1aca6d4397e5a39d">getStaticClass</a> ()</td></tr>
<tr class="separator:a0bdbda4effe8938c1aca6d4397e5a39d inherit pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50ec9288d0b7e3140dee8e24ee74a212 inherit pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a50ec9288d0b7e3140dee8e24ee74a212">registerClass</a> ()</td></tr>
<tr class="separator:a50ec9288d0b7e3140dee8e24ee74a212 inherit pub_static_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation base class for all appenders. </p>
<p>This class provides the code for common functionality, such as support for threshold filtering and support for general filters. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a634ba3ed7cb419659613107766cd826a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html">AppenderSkeleton</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a600b7815b22ec8cec8a9709cb78a42aa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1_appender_skeleton.html">AppenderSkeleton</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> &amp;&#160;</td>
<td class="paramname"><em>layout</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="abe1aa95ede9cc9d0609905154129c0ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void activateOptions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Derived appenders should override this method if option structure requires it. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#af04d4bfbd66b46083b1aa042fdafbb06">OptionHandler</a>.</p>
<p>Reimplemented in <a class="el" href="classlog4cxx_1_1_daily_rolling_file_appender.html#a580abdcb8fd42d07eaf679166f77bc34">DailyRollingFileAppender</a>, <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#af1f3ced78d335ec9c2b800d6d5aa3ef8">ODBCAppender</a>, <a class="el" href="classlog4cxx_1_1_file_appender.html#aa3df68f8aae152299471992071e202f5">FileAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_hub_appender.html#af1f3ced78d335ec9c2b800d6d5aa3ef8">SocketHubAppender</a>, <a class="el" href="classlog4cxx_1_1_rolling_file_appender.html#a75035ac63aad24ddcbb340ddaba57f1c">RollingFileAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_s_m_t_p_appender.html#af1f3ced78d335ec9c2b800d6d5aa3ef8">SMTPAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_telnet_appender.html#aa3df68f8aae152299471992071e202f5">TelnetAppender</a>, <a class="el" href="classlog4cxx_1_1_writer_appender.html#a9fe8531491720e83f1d25862d918a37d">WriterAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_syslog_appender.html#aa3df68f8aae152299471992071e202f5">SyslogAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_appender_skeleton.html#aa3df68f8aae152299471992071e202f5">SocketAppenderSkeleton</a>, <a class="el" href="classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton.html#a580abdcb8fd42d07eaf679166f77bc34">RollingFileAppenderSkeleton</a>, <a class="el" href="classlog4cxx_1_1_console_appender.html#aa3df68f8aae152299471992071e202f5">ConsoleAppender</a>, and <a class="el" href="classlog4cxx_1_1nt_1_1_n_t_event_log_appender.html#af1f3ced78d335ec9c2b800d6d5aa3ef8">NTEventLogAppender</a>.</p>
</div>
</div>
<a class="anchor" id="a8a4525ba6d2efe017934bbd867186ec3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void addFilter </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> &amp;&#160;</td>
<td class="paramname"><em>newFilter</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a filter to end of the filter list. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#a06931700a645a1cf08353968672d5dfe">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="a0198815940c2715c84b0e04828cf8dfa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void addRef </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#ac82ce1688acb6704813967344dda7bff">Object</a>.</p>
<p>Reimplemented in <a class="el" href="classlog4cxx_1_1_async_appender.html#a0198815940c2715c84b0e04828cf8dfa">AsyncAppender</a>.</p>
</div>
</div>
<a class="anchor" id="a4c08a91d859f636117f07463bb53fe41"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void append </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;&#160;</td>
<td class="paramname"><em>event</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Subclasses of <code><a class="el" href="classlog4cxx_1_1_appender_skeleton.html" title="Implementation base class for all appenders. ">AppenderSkeleton</a></code> should implement this method to perform actual logging. </p>
<p>See also <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a2df87e9db87ebe5396ea94fb9c25c488" title="This method performs threshold checks and invokes filters before delegating actual logging to the sub...">AppenderSkeleton::doAppend</a> method. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a0e1344f34583432e33fb23c587b8bccb">ODBCAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_hub_appender.html#ac0184656854a0362e99b46512b6a1761">SocketHubAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_x_m_l_socket_appender.html#ab862691b0ebb1d0ff98085b10b021781">XMLSocketAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_appender.html#ab862691b0ebb1d0ff98085b10b021781">SocketAppender</a>, <a class="el" href="classlog4cxx_1_1_writer_appender.html#ac0184656854a0362e99b46512b6a1761">WriterAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_telnet_appender.html#ac0184656854a0362e99b46512b6a1761">TelnetAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_s_m_t_p_appender.html#ac0184656854a0362e99b46512b6a1761">SMTPAppender</a>, <a class="el" href="classlog4cxx_1_1_async_appender.html#a77865c6199c0128510162f6a598f2f41">AsyncAppender</a>, <a class="el" href="classlog4cxx_1_1nt_1_1_n_t_event_log_appender.html#ac0184656854a0362e99b46512b6a1761">NTEventLogAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_syslog_appender.html#a77865c6199c0128510162f6a598f2f41">SyslogAppender</a>, and <a class="el" href="classlog4cxx_1_1nt_1_1_output_debug_string_appender.html#ac0184656854a0362e99b46512b6a1761">OutputDebugStringAppender</a>.</p>
</div>
</div>
<a class="anchor" id="af13013b8fd73be124730ec9f299c234d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void clearFilters </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear the filters chain. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#a5219689d2c359a4bf6ddc48ea1e8dd42">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="a2df87e9db87ebe5396ea94fb9c25c488"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void doAppend </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;&#160;</td>
<td class="paramname"><em>event</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&#160;</td>
<td class="paramname"><em>pool</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a4c08a91d859f636117f07463bb53fe41" title="Subclasses of AppenderSkeleton should implement this method to perform actual logging. ">AppenderSkeleton::append</a> method. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#ae78c4f3ccf2a3b33eb83d76e49e79dc6">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="a32d626626eee0bc4ade146973f6abb1c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void finalize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Finalize this appender by calling the derived class' <code>close</code> method. </p>
</div>
</div>
<a class="anchor" id="a68195e289d2c9cb19bd5751e59d6d892"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a>&amp; getErrorHandler </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the currently set <a class="el" href="classlog4cxx_1_1spi_1_1_error_handler.html" title="Appenders may delegate their error handling to ErrorHandlers. ">spi::ErrorHandler</a> for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. </p>
</div>
</div>
<a class="anchor" id="a459cdb3654725c5dbc68ac4e4a8b980e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> getFilter </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the head Filter. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#a86439b317455a4618d4bff71709c48ea">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="a65d9c0a259578f6bb448f722bf9b13b9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a>&amp; getFirstFilter </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the first filter in the filter chain for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. </p>
<p>The return value may be <code>0</code> if no is filter is set. </p>
</div>
</div>
<a class="anchor" id="af54e877f133079a04e7c210c0d3ad5dc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> getLayout </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the layout of this appender. </p>
<p>The value may be 0. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#ad09537f618ffdad55a8e0f2e8ecf8be8">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="ac22a8d65fdc07f5b0e52c935b0ee055f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> getName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the name of this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#a4a8352fb40ee01d42f1f01472876bb34">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="a784a1140df55e25c4162f382b9ad47be"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespacelog4cxx.html#ae5a3f62e1b8b965953cbddfda82c53b5">LevelPtr</a>&amp; getThreshold </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns this appenders threshold level. </p>
<p>See the <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a09e9d86bbb2b7b2f94b3f7e74d3557a4" title="Set the threshold level. ">setThreshold</a> method for the meaning of this option. </p>
</div>
</div>
<a class="anchor" id="a40984cbecea40b828eba6271a14c2b4a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool isAsSevereAsThreshold </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ae5a3f62e1b8b965953cbddfda82c53b5">LevelPtr</a> &amp;&#160;</td>
<td class="paramname"><em>level</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Check whether the message level is below the appender's threshold. </p>
<p>If there is no threshold set, then the return value is always <code>true</code>. </p>
</div>
</div>
<a class="anchor" id="a55c31efee1904916b999395fa4d46a24"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void releaseRef </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#ad54d5773a0683bffdf4132da4dee6d76">Object</a>.</p>
<p>Reimplemented in <a class="el" href="classlog4cxx_1_1_async_appender.html#a55c31efee1904916b999395fa4d46a24">AsyncAppender</a>.</p>
</div>
</div>
<a class="anchor" id="aa040b30f61aa49ee862dba7d32e3c537"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void setErrorHandler </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a> &amp;&#160;</td>
<td class="paramname"><em>eh</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the <a class="el" href="classlog4cxx_1_1spi_1_1_error_handler.html">ErrorHandler</a> for this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. </p>
</div>
</div>
<a class="anchor" id="a115922e0a4ce63e2145c8861aac07c7f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setLayout </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> &amp;&#160;</td>
<td class="paramname"><em>layout1</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the layout for this appender. </p>
<p>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_1_socket_appender.html">SocketAppender</a> ignores the layout set here. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#a88cfba44fa745f658fab9b8c6a8d959f">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="a87e335b8d195a30dbdfe18d5da24b047"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setName </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>name1</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the name of this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a>. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#a46473dcf1999f98a4c97168a3d2c7c84">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="aee5023c29cca9dc68164b22a01cb7c6e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void setOption </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>option</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set <code>option</code> to <code>value</code>. </p>
<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_1_appender_skeleton.html#abe1aa95ede9cc9d0609905154129c0ba" title="Derived appenders should override this method if option structure requires it. ">activateOptions</a> is called. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#a8f2ae2ded63f80c627269c99b20c19ee">OptionHandler</a>.</p>
<p>Reimplemented in <a class="el" href="classlog4cxx_1_1_daily_rolling_file_appender.html#ac1d269357907e0809687a2bec962e1c8">DailyRollingFileAppender</a>, <a class="el" href="classlog4cxx_1_1_async_appender.html#ac1d269357907e0809687a2bec962e1c8">AsyncAppender</a>, <a class="el" href="classlog4cxx_1_1_writer_appender.html#ac1d269357907e0809687a2bec962e1c8">WriterAppender</a>, <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#aee5023c29cca9dc68164b22a01cb7c6e">ODBCAppender</a>, <a class="el" href="classlog4cxx_1_1_file_appender.html#ac1d269357907e0809687a2bec962e1c8">FileAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_appender_skeleton.html#ac1d269357907e0809687a2bec962e1c8">SocketAppenderSkeleton</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_hub_appender.html#aee5023c29cca9dc68164b22a01cb7c6e">SocketHubAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_telnet_appender.html#aee5023c29cca9dc68164b22a01cb7c6e">TelnetAppender</a>, <a class="el" href="classlog4cxx_1_1_rolling_file_appender.html#aee5023c29cca9dc68164b22a01cb7c6e">RollingFileAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_s_m_t_p_appender.html#aee5023c29cca9dc68164b22a01cb7c6e">SMTPAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_syslog_appender.html#ac1d269357907e0809687a2bec962e1c8">SyslogAppender</a>, <a class="el" href="classlog4cxx_1_1_console_appender.html#ac1d269357907e0809687a2bec962e1c8">ConsoleAppender</a>, and <a class="el" href="classlog4cxx_1_1nt_1_1_n_t_event_log_appender.html#aee5023c29cca9dc68164b22a01cb7c6e">NTEventLogAppender</a>.</p>
</div>
</div>
<a class="anchor" id="a09e9d86bbb2b7b2f94b3f7e74d3557a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void setThreshold </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx.html#ae5a3f62e1b8b965953cbddfda82c53b5">LevelPtr</a> &amp;&#160;</td>
<td class="paramname"><em>threshold</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the threshold level. </p>
<p>All log events with lower level than the threshold level are ignored by the appender.</p>
<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. </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a624c24d3973e790d23212b57f13e894b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool closed</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Is this appender closed? </p>
</div>
</div>
<a class="anchor" id="ae6afac50bae7fd8b7c2b7e7984918298"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx_1_1spi.html#a108bc59ff8ac9e8ef6ad79e9567f4293">spi::ErrorHandlerPtr</a> errorHandler</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>It is assumed and enforced that errorHandler is never null. </p>
</div>
</div>
<a class="anchor" id="a6d297ecc2f5fbfa373d9ad7a26ad51a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> headFilter</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The first filter in the filter chain. </p>
<p>Set to <code>null</code> initially. </p>
</div>
</div>
<a class="anchor" id="af1f4e6a2229d95a18324c4e7fa71be65"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> layout</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The layout variable does not need to be set if the appender implementation has its own layout. </p>
</div>
</div>
<a class="anchor" id="aa48227a58e71081f489370bf534ed7ac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1helpers_1_1_mutex.html">log4cxx::helpers::Mutex</a> mutex</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9de136310b76f5d0aa8b40848216b167"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> name</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Appenders are named. </p>
</div>
</div>
<a class="anchor" id="a6c72571775abf91a74fade4e2c2b9af8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> pool</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0b816fdac60684ae1095e81d2bfdaa46"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> tailFilter</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The last filter in the filter chain. </p>
</div>
</div>
<a class="anchor" id="a084d52617254f80c575bc96187ff4474"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ae5a3f62e1b8b965953cbddfda82c53b5">LevelPtr</a> threshold</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>There is no level threshold filtering by default. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="appenderskeleton_8h.html">appenderskeleton.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
</body>
</html>