blob: dedee30480c27f1662ca50d5f6737d6f51337ead [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: Appender 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.11.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.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="classlog4cxx_1_1_appender-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Appender Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Implement this interface for your own strategies for outputting log statements.
<a href="classlog4cxx_1_1_appender.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Appender:</div>
<div class="dyncontent">
<div class="center">
<img src="classlog4cxx_1_1_appender.png" usemap="#Appender_map" alt=""/>
<map id="Appender_map" name="Appender_map">
<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="0,0,175,24"/>
<area href="classlog4cxx_1_1_appender_skeleton.html" title="Implementation base class for all appenders. " alt="AppenderSkeleton" shape="rect" coords="0,168,175,192"/>
<area href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously. " alt="AsyncAppender" shape="rect" coords="185,224,360,248"/>
<area href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html" alt="ODBCAppender" shape="rect" coords="185,280,360,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="185,336,360,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="185,392,360,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="185,448,360,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="185,504,360,528"/>
<area href="classlog4cxx_1_1net_1_1_telnet_appender.html" alt="TelnetAppender" shape="rect" coords="185,560,360,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="185,616,360,640"/>
<area href="classlog4cxx_1_1nt_1_1_output_debug_string_appender.html" alt="OutputDebugStringAppender" shape="rect" coords="185,672,360,696"/>
<area href="classlog4cxx_1_1_writer_appender.html" title="WriterAppender appends log events to a standard output stream. " alt="WriterAppender" shape="rect" coords="185,728,360,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:a15a14100e46e406766b1c92c670948e1"><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"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06931700a645a1cf08353968672d5dfe"><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#a06931700a645a1cf08353968672d5dfe">addFilter</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#a2d59aaf291a3cb28e165f0912242da25">spi::FilterPtr</a> &amp;newFilter)=0</td></tr>
<tr class="memdesc:a06931700a645a1cf08353968672d5dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a filter to the end of the filter list. <a href="#a06931700a645a1cf08353968672d5dfe">More...</a><br /></td></tr>
<tr class="separator:a06931700a645a1cf08353968672d5dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31134324f99ee92e17f359e3daa05ca7"><td class="memItemLeft" align="right" valign="top">virtual <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.html#a31134324f99ee92e17f359e3daa05ca7">getFilter</a> () const =0</td></tr>
<tr class="memdesc:a31134324f99ee92e17f359e3daa05ca7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the head Filter. <a href="#a31134324f99ee92e17f359e3daa05ca7">More...</a><br /></td></tr>
<tr class="separator:a31134324f99ee92e17f359e3daa05ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5219689d2c359a4bf6ddc48ea1e8dd42"><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#a5219689d2c359a4bf6ddc48ea1e8dd42">clearFilters</a> ()=0</td></tr>
<tr class="memdesc:a5219689d2c359a4bf6ddc48ea1e8dd42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the list of filters by removing all the filters in it. <a href="#a5219689d2c359a4bf6ddc48ea1e8dd42">More...</a><br /></td></tr>
<tr class="separator:a5219689d2c359a4bf6ddc48ea1e8dd42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6ee7eacbde6b379b68d954e44f6e549"><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"><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"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae78c4f3ccf2a3b33eb83d76e49e79dc6"><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#ae78c4f3ccf2a3b33eb83d76e49e79dc6">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;pool)=0</td></tr>
<tr class="memdesc:ae78c4f3ccf2a3b33eb83d76e49e79dc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log in <code><a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a></code> specific way. <a href="#ae78c4f3ccf2a3b33eb83d76e49e79dc6">More...</a><br /></td></tr>
<tr class="separator:ae78c4f3ccf2a3b33eb83d76e49e79dc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7a22efd00c94d9d06b832fe6953baa3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender.html#ae7a22efd00c94d9d06b832fe6953baa3">getName</a> () const =0</td></tr>
<tr class="memdesc:ae7a22efd00c94d9d06b832fe6953baa3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of this appender. <a href="#ae7a22efd00c94d9d06b832fe6953baa3">More...</a><br /></td></tr>
<tr class="separator:ae7a22efd00c94d9d06b832fe6953baa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88cfba44fa745f658fab9b8c6a8d959f"><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#a88cfba44fa745f658fab9b8c6a8d959f">setLayout</a> (const <a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a> &amp;layout)=0</td></tr>
<tr class="memdesc:a88cfba44fa745f658fab9b8c6a8d959f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the <a class="el" href="classlog4cxx_1_1_layout.html" title="Extend this abstract class to create your own log layout format. ">Layout</a> for this appender. <a href="#a88cfba44fa745f658fab9b8c6a8d959f">More...</a><br /></td></tr>
<tr class="separator:a88cfba44fa745f658fab9b8c6a8d959f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ec13ad0f8e6a13f91dc7a7ce7a4a564"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacelog4cxx.html#abacb7573630fc4e562c99e4571a90f1e">LayoutPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_appender.html#a1ec13ad0f8e6a13f91dc7a7ce7a4a564">getLayout</a> () const =0</td></tr>
<tr class="memdesc:a1ec13ad0f8e6a13f91dc7a7ce7a4a564"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns this appenders layout. <a href="#a1ec13ad0f8e6a13f91dc7a7ce7a4a564">More...</a><br /></td></tr>
<tr class="separator:a1ec13ad0f8e6a13f91dc7a7ce7a4a564"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46473dcf1999f98a4c97168a3d2c7c84"><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#a46473dcf1999f98a4c97168a3d2c7c84">setName</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;name)=0</td></tr>
<tr class="memdesc:a46473dcf1999f98a4c97168a3d2c7c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the name of this appender. <a href="#a46473dcf1999f98a4c97168a3d2c7c84">More...</a><br /></td></tr>
<tr class="separator:a46473dcf1999f98a4c97168a3d2c7c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fa0a21a0f0a6ec3a9e92a98db9ffa85"><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#a1fa0a21a0f0a6ec3a9e92a98db9ffa85">requiresLayout</a> () const =0</td></tr>
<tr class="memdesc:a1fa0a21a0f0a6ec3a9e92a98db9ffa85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configurators call this method to determine if the appender requires a layout. <a href="#a1fa0a21a0f0a6ec3a9e92a98db9ffa85">More...</a><br /></td></tr>
<tr class="separator:a1fa0a21a0f0a6ec3a9e92a98db9ffa85"><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="memitem:af04d4bfbd66b46083b1aa042fdafbb06 inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#af04d4bfbd66b46083b1aa042fdafbb06">activateOptions</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p)=0</td></tr>
<tr class="memdesc:af04d4bfbd66b46083b1aa042fdafbb06 inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activate the options that were previously set with calls to option setters. <a href="#af04d4bfbd66b46083b1aa042fdafbb06">More...</a><br /></td></tr>
<tr class="separator:af04d4bfbd66b46083b1aa042fdafbb06 inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f2ae2ded63f80c627269c99b20c19ee inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#a8f2ae2ded63f80c627269c99b20c19ee">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)=0</td></tr>
<tr class="memdesc:a8f2ae2ded63f80c627269c99b20c19ee inherit pub_methods_classlog4cxx_1_1spi_1_1_option_handler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set <code>option</code> to <code>value</code>. <a href="#a8f2ae2ded63f80c627269c99b20c19ee">More...</a><br /></td></tr>
<tr class="separator:a8f2ae2ded63f80c627269c99b20c19ee 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:ad46110ab1ec2f0c6f3d1e0803df6cdc4 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#ad46110ab1ec2f0c6f3d1e0803df6cdc4">addRef</a> () const =0</td></tr>
<tr class="separator:ad46110ab1ec2f0c6f3d1e0803df6cdc4 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f5e8d8350f515ab75e47c61f2e31c21 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#a1f5e8d8350f515ab75e47c61f2e31c21">releaseRef</a> () const =0</td></tr>
<tr class="separator:a1f5e8d8350f515ab75e47c61f2e31c21 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3604a5fb08f7048d41b51a3943740b96 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#a3604a5fb08f7048d41b51a3943740b96">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:a3604a5fb08f7048d41b51a3943740b96 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a7744a4efdb699356cef215613903c3 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#a5a7744a4efdb699356cef215613903c3">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:a5a7744a4efdb699356cef215613903c3 inherit pub_methods_classlog4cxx_1_1helpers_1_1_object"><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>Implement this interface for your own strategies for outputting log statements. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a15a14100e46e406766b1c92c670948e1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual ~<a class="el" href="classlog4cxx_1_1_appender.html">Appender</a> </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 class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a06931700a645a1cf08353968672d5dfe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual 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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a filter to the end of the filter list. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a8a4525ba6d2efe017934bbd867186ec3">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a5219689d2c359a4bf6ddc48ea1e8dd42"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual 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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear the list of filters by removing all the filters in it. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af13013b8fd73be124730ec9f299c234d">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="af6ee7eacbde6b379b68d954e44f6e549"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Release any resources allocated within the appender such as file handles, network connections, etc. </p>
<p>It is a programming error to append to a closed appender. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a47feccb1873356363e4d0e302bc3822c">ODBCAppender</a>, <a class="el" href="classlog4cxx_1_1_writer_appender.html#a47feccb1873356363e4d0e302bc3822c">WriterAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_hub_appender.html#a47feccb1873356363e4d0e302bc3822c">SocketHubAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_telnet_appender.html#a5ae591df94fc66ccb85cbb6565368bca">TelnetAppender</a>, <a class="el" href="classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton.html#a5ae591df94fc66ccb85cbb6565368bca">RollingFileAppenderSkeleton</a>, <a class="el" href="classlog4cxx_1_1net_1_1_s_m_t_p_appender.html#a47feccb1873356363e4d0e302bc3822c">SMTPAppender</a>, <a class="el" href="classlog4cxx_1_1_async_appender.html#a5ae591df94fc66ccb85cbb6565368bca">AsyncAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_appender_skeleton.html#a5ae591df94fc66ccb85cbb6565368bca">SocketAppenderSkeleton</a>, <a class="el" href="classlog4cxx_1_1nt_1_1_n_t_event_log_appender.html#a47feccb1873356363e4d0e302bc3822c">NTEventLogAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_syslog_appender.html#a5ae591df94fc66ccb85cbb6565368bca">SyslogAppender</a>, and <a class="el" href="classlog4cxx_1_1nt_1_1_output_debug_string_appender.html#a47feccb1873356363e4d0e302bc3822c">OutputDebugStringAppender</a>.</p>
</div>
</div>
<a class="anchor" id="ae78c4f3ccf2a3b33eb83d76e49e79dc6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual 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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Log in <code><a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a></code> specific way. </p>
<p>When appropriate, Loggers will call the <code>doAppend</code> method of appender implementations in order to log. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#ac41fcbcaaf2249b60ad3c63301f37888">AppenderSkeleton</a>, and <a class="el" href="classlog4cxx_1_1_async_appender.html#aea21f210fed4c5b91ce0cba10b33af89">AsyncAppender</a>.</p>
</div>
</div>
<a class="anchor" id="a31134324f99ee92e17f359e3daa05ca7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the head Filter. </p>
<p>The Filters are organized in a linked list and so all Filters on this <a class="el" href="classlog4cxx_1_1_appender.html" title="Implement this interface for your own strategies for outputting log statements. ">Appender</a> are available through the result.</p>
<dl class="section return"><dt>Returns</dt><dd>the head Filter or null, if no Filters are present </dd></dl>
<p>Implemented in <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a459cdb3654725c5dbc68ac4e4a8b980e">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a1ec13ad0f8e6a13f91dc7a7ce7a4a564"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns this appenders layout. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#af54e877f133079a04e7c210c0d3ad5dc">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="ae7a22efd00c94d9d06b832fe6953baa3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the name of this appender. </p>
<p>The name uniquely identifies the appender. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#ac22a8d65fdc07f5b0e52c935b0ee055f">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a1fa0a21a0f0a6ec3a9e92a98db9ffa85"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool requiresLayout </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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Configurators call this method to determine if the appender requires a layout. </p>
<p>If this method returns <code>true</code>, meaning that layout is required, then the configurator will configure an layout using the configuration information at its disposal. If this method returns <code>false</code>, meaning that a layout is not required, then layout configuration will be skipped even if there is available layout configuration information at the disposal of the configurator..</p>
<p>In the rather exceptional case, where the appender implementation admits a layout but can also work without it, then the appender should return <code>true</code>. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1db_1_1_o_d_b_c_appender.html#a4312e727a9ea814779d2c9950dc3c73e">ODBCAppender</a>, <a class="el" href="classlog4cxx_1_1_writer_appender.html#a4312e727a9ea814779d2c9950dc3c73e">WriterAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_hub_appender.html#a4312e727a9ea814779d2c9950dc3c73e">SocketHubAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_s_m_t_p_appender.html#a4312e727a9ea814779d2c9950dc3c73e">SMTPAppender</a>, <a class="el" href="classlog4cxx_1_1_async_appender.html#a4312e727a9ea814779d2c9950dc3c73e">AsyncAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_telnet_appender.html#a4312e727a9ea814779d2c9950dc3c73e">TelnetAppender</a>, <a class="el" href="classlog4cxx_1_1net_1_1_socket_appender_skeleton.html#aa401613183830542f9c6b1c425198cdc">SocketAppenderSkeleton</a>, <a class="el" href="classlog4cxx_1_1net_1_1_syslog_appender.html#a4312e727a9ea814779d2c9950dc3c73e">SyslogAppender</a>, <a class="el" href="classlog4cxx_1_1nt_1_1_n_t_event_log_appender.html#aa401613183830542f9c6b1c425198cdc">NTEventLogAppender</a>, and <a class="el" href="classlog4cxx_1_1nt_1_1_output_debug_string_appender.html#aa401613183830542f9c6b1c425198cdc">OutputDebugStringAppender</a>.</p>
</div>
</div>
<a class="anchor" id="a88cfba44fa745f658fab9b8c6a8d959f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual 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>layout</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the <a class="el" href="classlog4cxx_1_1_layout.html" title="Extend this abstract class to create your own log layout format. ">Layout</a> for this appender. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a115922e0a4ce63e2145c8861aac07c7f">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a46473dcf1999f98a4c97168a3d2c7c84"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual 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>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the name of this appender. </p>
<p>The name is used by other components to identify this appender. </p>
<p>Implemented in <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a87e335b8d195a30dbdfe18d5da24b047">AppenderSkeleton</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="appender_8h.html">appender.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>