blob: 6f51e40c57d6eabfab9807f48bff2f3ff7aaf278 [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: WriterAppender 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_writer_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="#pro-methods">Protected Member Functions</a> &#124;
<a href="classlog4cxx_1_1_writer_appender-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">WriterAppender Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classlog4cxx_1_1_writer_appender.html" title="WriterAppender appends log events to a standard output stream. ">WriterAppender</a> appends log events to a standard output stream.
<a href="classlog4cxx_1_1_writer_appender.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for WriterAppender:</div>
<div class="dyncontent">
<div class="center">
<img src="classlog4cxx_1_1_writer_appender.png" usemap="#WriterAppender_map" alt=""/>
<map id="WriterAppender_map" name="WriterAppender_map">
<area href="classlog4cxx_1_1_appender_skeleton.html" title="Implementation base class for all appenders. " alt="AppenderSkeleton" shape="rect" coords="92,168,267,192"/>
<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_console_appender.html" title="ConsoleAppender appends log events to stdout or stderr using a layout specified by the user..." alt="ConsoleAppender" shape="rect" coords="0,280,175,304"/>
<area href="classlog4cxx_1_1_file_appender.html" title="FileAppender appends log events to a file. " alt="FileAppender" shape="rect" coords="185,280,360,304"/>
<area href="classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton.html" title="Base class for log4cxx::rolling::RollingFileAppender and log4cxx::RollingFileAppender (analogues of o..." alt="RollingFileAppenderSkeleton" shape="rect" coords="185,336,360,360"/>
<area href="classlog4cxx_1_1_daily_rolling_file_appender.html" title="DailyRollingFileAppender extends FileAppender so that the underlying file is rolled over at a user ch..." alt="DailyRollingFileAppender" shape="rect" coords="0,392,175,416"/>
<area href="classlog4cxx_1_1rolling_1_1_rolling_file_appender.html" title="RollingFileAppender extends log4cxx::FileAppender to backup the log files depending on RollingPolicy ..." alt="RollingFileAppender" shape="rect" coords="185,392,360,416"/>
<area href="classlog4cxx_1_1_rolling_file_appender.html" title="RollingFileAppender extends FileAppender to backup the log files when they reach a certain size..." alt="RollingFileAppender" shape="rect" coords="370,392,545,416"/>
</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:ab42c7b837d3e2fb221d401edb7ccbc58"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#ab42c7b837d3e2fb221d401edb7ccbc58">WriterAppender</a> ()</td></tr>
<tr class="memdesc:ab42c7b837d3e2fb221d401edb7ccbc58"><td class="mdescLeft">&#160;</td><td class="mdescRight">This default constructor does nothing. <a href="#ab42c7b837d3e2fb221d401edb7ccbc58">More...</a><br /></td></tr>
<tr class="separator:ab42c7b837d3e2fb221d401edb7ccbc58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45595e7074844ef66a4e3633b4bf385a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a45595e7074844ef66a4e3633b4bf385a">~WriterAppender</a> ()</td></tr>
<tr class="separator:a45595e7074844ef66a4e3633b4bf385a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fe8531491720e83f1d25862d918a37d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a9fe8531491720e83f1d25862d918a37d">activateOptions</a> (<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:a9fe8531491720e83f1d25862d918a37d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derived appenders should override this method if option structure requires it. <a href="#a9fe8531491720e83f1d25862d918a37d">More...</a><br /></td></tr>
<tr class="separator:a9fe8531491720e83f1d25862d918a37d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58ab91de34ae4ce9b59c62695ec4fc31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a58ab91de34ae4ce9b59c62695ec4fc31">setImmediateFlush</a> (bool value)</td></tr>
<tr class="memdesc:a58ab91de34ae4ce9b59c62695ec4fc31"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the <b>ImmediateFlush</b> option is set to <code>true</code>, the appender will flush at the end of each write. <a href="#a58ab91de34ae4ce9b59c62695ec4fc31">More...</a><br /></td></tr>
<tr class="separator:a58ab91de34ae4ce9b59c62695ec4fc31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2f592fce6f7a25d47bee3bfb187ca1a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#af2f592fce6f7a25d47bee3bfb187ca1a">getImmediateFlush</a> () const </td></tr>
<tr class="memdesc:af2f592fce6f7a25d47bee3bfb187ca1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns value of the <b>ImmediateFlush</b> option. <a href="#af2f592fce6f7a25d47bee3bfb187ca1a">More...</a><br /></td></tr>
<tr class="separator:af2f592fce6f7a25d47bee3bfb187ca1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0184656854a0362e99b46512b6a1761"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#ac0184656854a0362e99b46512b6a1761">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)</td></tr>
<tr class="memdesc:ac0184656854a0362e99b46512b6a1761"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called by the <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. <a href="#ac0184656854a0362e99b46512b6a1761">More...</a><br /></td></tr>
<tr class="separator:ac0184656854a0362e99b46512b6a1761"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47feccb1873356363e4d0e302bc3822c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a47feccb1873356363e4d0e302bc3822c">close</a> ()</td></tr>
<tr class="memdesc:a47feccb1873356363e4d0e302bc3822c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close this appender instance. <a href="#a47feccb1873356363e4d0e302bc3822c">More...</a><br /></td></tr>
<tr class="separator:a47feccb1873356363e4d0e302bc3822c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b5502ee1e14732e5c6817372f076497"><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_writer_appender.html#a7b5502ee1e14732e5c6817372f076497">getEncoding</a> () const </td></tr>
<tr class="separator:a7b5502ee1e14732e5c6817372f076497"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad61a2dfe920558b5d2057d1ca8a8df3a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#ad61a2dfe920558b5d2057d1ca8a8df3a">setEncoding</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;value)</td></tr>
<tr class="separator:ad61a2dfe920558b5d2057d1ca8a8df3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1d269357907e0809687a2bec962e1c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#ac1d269357907e0809687a2bec962e1c8">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:ac1d269357907e0809687a2bec962e1c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set <code>option</code> to <code>value</code>. <a href="#ac1d269357907e0809687a2bec962e1c8">More...</a><br /></td></tr>
<tr class="separator:ac1d269357907e0809687a2bec962e1c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45cd5e544a9ec09e32ff34356c0cafa5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a45cd5e544a9ec09e32ff34356c0cafa5">setWriter</a> (const log4cxx::helpers::WriterPtr &amp;writer)</td></tr>
<tr class="separator:a45cd5e544a9ec09e32ff34356c0cafa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4312e727a9ea814779d2c9950dc3c73e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a4312e727a9ea814779d2c9950dc3c73e">requiresLayout</a> () const </td></tr>
<tr class="memdesc:a4312e727a9ea814779d2c9950dc3c73e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configurators call this method to determine if the appender requires a layout. <a href="#a4312e727a9ea814779d2c9950dc3c73e">More...</a><br /></td></tr>
<tr class="separator:a4312e727a9ea814779d2c9950dc3c73e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classlog4cxx_1_1_appender_skeleton"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classlog4cxx_1_1_appender_skeleton')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html">AppenderSkeleton</a></td></tr>
<tr class="memitem:a634ba3ed7cb419659613107766cd826a inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a600b7815b22ec8cec8a9709cb78a42aa inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0198815940c2715c84b0e04828cf8dfa inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c31efee1904916b999395fa4d46a24 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32d626626eee0bc4ade146973f6abb1c inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a4525ba6d2efe017934bbd867186ec3 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13013b8fd73be124730ec9f299c234d inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the filters chain. <a href="#af13013b8fd73be124730ec9f299c234d">More...</a><br /></td></tr>
<tr class="separator:af13013b8fd73be124730ec9f299c234d inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68195e289d2c9cb19bd5751e59d6d892 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a459cdb3654725c5dbc68ac4e4a8b980e inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the head Filter. <a href="#a459cdb3654725c5dbc68ac4e4a8b980e">More...</a><br /></td></tr>
<tr class="separator:a459cdb3654725c5dbc68ac4e4a8b980e inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65d9c0a259578f6bb448f722bf9b13b9 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af54e877f133079a04e7c210c0d3ad5dc inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac22a8d65fdc07f5b0e52c935b0ee055f inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a784a1140df55e25c4162f382b9ad47be inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40984cbecea40b828eba6271a14c2b4a inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2df87e9db87ebe5396ea94fb9c25c488 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa040b30f61aa49ee862dba7d32e3c537 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a115922e0a4ce63e2145c8861aac07c7f inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87e335b8d195a30dbdfe18d5da24b047 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09e9d86bbb2b7b2f94b3f7e74d3557a4 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the threshold level. <a href="#a09e9d86bbb2b7b2f94b3f7e74d3557a4">More...</a><br /></td></tr>
<tr class="separator:a09e9d86bbb2b7b2f94b3f7e74d3557a4 inherit pub_methods_classlog4cxx_1_1_appender_skeleton"><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="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:aec1ecba3908c4f494f3bd652530b8226"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#aec1ecba3908c4f494f3bd652530b8226">WriterAppender</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>, log4cxx::helpers::WriterPtr &amp;writer)</td></tr>
<tr class="separator:aec1ecba3908c4f494f3bd652530b8226"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fa0b32c94701c354192c2d303bd8f29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a3fa0b32c94701c354192c2d303bd8f29">WriterAppender</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:a3fa0b32c94701c354192c2d303bd8f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56705c015702739ee013e18837d5820f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a56705c015702739ee013e18837d5820f">checkEntryConditions</a> () const </td></tr>
<tr class="memdesc:a56705c015702739ee013e18837d5820f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method determines if there is a sense in attempting to append. <a href="#a56705c015702739ee013e18837d5820f">More...</a><br /></td></tr>
<tr class="separator:a56705c015702739ee013e18837d5820f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac734cbad6115274c54627ddc5b8c7762"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#ac734cbad6115274c54627ddc5b8c7762">closeWriter</a> ()</td></tr>
<tr class="memdesc:ac734cbad6115274c54627ddc5b8c7762"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the underlying <a class="el" href="classlog4cxx_1_1helpers_1_1_writer.html">log4cxx::helpers::Writer</a>. <a href="#ac734cbad6115274c54627ddc5b8c7762">More...</a><br /></td></tr>
<tr class="separator:ac734cbad6115274c54627ddc5b8c7762"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2dcda32c0a2332df966396a7829ecdb"><td class="memItemLeft" align="right" valign="top">virtual log4cxx::helpers::WriterPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#af2dcda32c0a2332df966396a7829ecdb">createWriter</a> (log4cxx::helpers::OutputStreamPtr &amp;os)</td></tr>
<tr class="memdesc:af2dcda32c0a2332df966396a7829ecdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an OutputStreamWriter when passed an OutputStream. <a href="#af2dcda32c0a2332df966396a7829ecdb">More...</a><br /></td></tr>
<tr class="separator:af2dcda32c0a2332df966396a7829ecdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c8e2c71b74a5c4f567a45fe723e6094"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#a6c8e2c71b74a5c4f567a45fe723e6094">subAppend</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)</td></tr>
<tr class="memdesc:a6c8e2c71b74a5c4f567a45fe723e6094"><td class="mdescLeft">&#160;</td><td class="mdescRight">Actual writing occurs here. <a href="#a6c8e2c71b74a5c4f567a45fe723e6094">More...</a><br /></td></tr>
<tr class="separator:a6c8e2c71b74a5c4f567a45fe723e6094"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5576da69e2d3d31bf7e5668833fa2ca"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#ae5576da69e2d3d31bf7e5668833fa2ca">writeFooter</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p)</td></tr>
<tr class="memdesc:ae5576da69e2d3d31bf7e5668833fa2ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a footer as produced by the embedded layout's <a class="el" href="classlog4cxx_1_1_layout.html#ae8f7d8f894b39b251cada7674bdfe8d2" title="Append the footer for the layout format. ">Layout::appendFooter</a> method. <a href="#ae5576da69e2d3d31bf7e5668833fa2ca">More...</a><br /></td></tr>
<tr class="separator:ae5576da69e2d3d31bf7e5668833fa2ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0eccd6ddf3cf28dfb087ff6e961d129"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_writer_appender.html#aa0eccd6ddf3cf28dfb087ff6e961d129">writeHeader</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p)</td></tr>
<tr class="memdesc:aa0eccd6ddf3cf28dfb087ff6e961d129"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a header as produced by the embedded layout's <a class="el" href="classlog4cxx_1_1_layout.html#ad1b07d688e39f3a8d71acec8f6d7b878" title="Append the header for the layout format. ">Layout::appendHeader</a> method. <a href="#aa0eccd6ddf3cf28dfb087ff6e961d129">More...</a><br /></td></tr>
<tr class="separator:aa0eccd6ddf3cf28dfb087ff6e961d129"><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>
<tr class="inherit_header pro_attribs_classlog4cxx_1_1_appender_skeleton"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classlog4cxx_1_1_appender_skeleton')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html">AppenderSkeleton</a></td></tr>
<tr class="memitem:af1f4e6a2229d95a18324c4e7fa71be65 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9de136310b76f5d0aa8b40848216b167 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appenders are named. <a href="#a9de136310b76f5d0aa8b40848216b167">More...</a><br /></td></tr>
<tr class="separator:a9de136310b76f5d0aa8b40848216b167 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a084d52617254f80c575bc96187ff4474 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6afac50bae7fd8b7c2b7e7984918298 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d297ecc2f5fbfa373d9ad7a26ad51a7 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b816fdac60684ae1095e81d2bfdaa46 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a624c24d3973e790d23212b57f13e894b inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is this appender closed? <a href="#a624c24d3973e790d23212b57f13e894b">More...</a><br /></td></tr>
<tr class="separator:a624c24d3973e790d23212b57f13e894b inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c72571775abf91a74fade4e2c2b9af8 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa48227a58e71081f489370bf534ed7ac inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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 inherit pro_attribs_classlog4cxx_1_1_appender_skeleton"><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>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classlog4cxx_1_1_writer_appender.html" title="WriterAppender appends log events to a standard output stream. ">WriterAppender</a> appends log events to a standard output stream. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab42c7b837d3e2fb221d401edb7ccbc58"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1_writer_appender.html">WriterAppender</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This default constructor does nothing. </p>
</div>
</div>
<a class="anchor" id="aec1ecba3908c4f494f3bd652530b8226"></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_1_writer_appender.html">WriterAppender</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>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">log4cxx::helpers::WriterPtr &amp;&#160;</td>
<td class="paramname"><em>writer</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> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3fa0b32c94701c354192c2d303bd8f29"></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_1_writer_appender.html">WriterAppender</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>
</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="a45595e7074844ef66a4e3633b4bf385a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">~<a class="el" href="classlog4cxx_1_1_writer_appender.html">WriterAppender</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a9fe8531491720e83f1d25862d918a37d"></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"><em>pool</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>Derived appenders should override this method if option structure requires it. </p>
<p>Reimplemented from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#abe1aa95ede9cc9d0609905154129c0ba">AppenderSkeleton</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_1_file_appender.html#aa3df68f8aae152299471992071e202f5">FileAppender</a>, <a class="el" href="classlog4cxx_1_1_rolling_file_appender.html#a75035ac63aad24ddcbb340ddaba57f1c">RollingFileAppender</a>, <a class="el" href="classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton.html#a580abdcb8fd42d07eaf679166f77bc34">RollingFileAppenderSkeleton</a>, and <a class="el" href="classlog4cxx_1_1_console_appender.html#aa3df68f8aae152299471992071e202f5">ConsoleAppender</a>.</p>
</div>
</div>
<a class="anchor" id="ac0184656854a0362e99b46512b6a1761"></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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method is called by the <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>If the output stream exists and is writable then write a log statement to the output stream. Otherwise, write a single warning message to <code>stderr</code>.</p>
<p>The format of the output will depend on this appender's layout. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a4c08a91d859f636117f07463bb53fe41">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a56705c015702739ee013e18837d5820f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool checkEntryConditions </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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method determines if there is a sense in attempting to append. </p>
<p>It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value <code>false</code> is returned. </p>
</div>
</div>
<a class="anchor" id="a47feccb1873356363e4d0e302bc3822c"></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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Close this appender instance. </p>
<p>The underlying stream or writer is also closed.</p>
<p>Closed appenders cannot be reused. </p>
<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#af6ee7eacbde6b379b68d954e44f6e549">Appender</a>.</p>
<p>Reimplemented in <a class="el" href="classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton.html#a5ae591df94fc66ccb85cbb6565368bca">RollingFileAppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="ac734cbad6115274c54627ddc5b8c7762"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void closeWriter </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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>Close the underlying <a class="el" href="classlog4cxx_1_1helpers_1_1_writer.html">log4cxx::helpers::Writer</a>. </p>
</div>
</div>
<a class="anchor" id="af2dcda32c0a2332df966396a7829ecdb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual log4cxx::helpers::WriterPtr createWriter </td>
<td>(</td>
<td class="paramtype">log4cxx::helpers::OutputStreamPtr &amp;&#160;</td>
<td class="paramname"><em>os</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an OutputStreamWriter when passed an OutputStream. </p>
<p>The encoding used will depend on the value of the <code>encoding</code> property. If the encoding value is specified incorrectly the writer will be opened using the default system encoding (an error message will be printed to the loglog. </p>
<p>Reimplemented in <a class="el" href="classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton.html#a63e7cf41bff411d962955de0d8da46c3">RollingFileAppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a7b5502ee1e14732e5c6817372f076497"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> getEncoding </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af2f592fce6f7a25d47bee3bfb187ca1a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool getImmediateFlush </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>Returns value of the <b>ImmediateFlush</b> option. </p>
</div>
</div>
<a class="anchor" id="a4312e727a9ea814779d2c9950dc3c73e"></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">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>Implements <a class="el" href="classlog4cxx_1_1_appender.html#a39fa88fc7fbd0a7f757b938e5d13b64b">Appender</a>.</p>
</div>
</div>
<a class="anchor" id="ad61a2dfe920558b5d2057d1ca8a8df3a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void setEncoding </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></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a58ab91de34ae4ce9b59c62695ec4fc31"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void setImmediateFlush </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If the <b>ImmediateFlush</b> option is set to <code>true</code>, the appender will flush at the end of each write. </p>
<p>This is the default behavior. If the option is set to <code>false</code>, then the underlying stream can defer writing to physical medium to a later time.</p>
<p>Avoiding the flush operation at the end of each append results in a performance gain of 10 to 20 percent. However, there is safety tradeoff involved in skipping flushing. Indeed, when flushing is skipped, then it is likely that the last few log events will not be recorded on disk when the application exits. This is a high price to pay even for a 20% performance gain. </p>
</div>
</div>
<a class="anchor" id="ac1d269357907e0809687a2bec962e1c8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">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_writer_appender.html#a9fe8531491720e83f1d25862d918a37d" title="Derived appenders should override this method if option structure requires it. ">activateOptions</a> is called. </p>
<p>Reimplemented from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#aee5023c29cca9dc68164b22a01cb7c6e">AppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="a45cd5e544a9ec09e32ff34356c0cafa5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void setWriter </td>
<td>(</td>
<td class="paramtype">const log4cxx::helpers::WriterPtr &amp;&#160;</td>
<td class="paramname"><em>writer</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the Writer where the log output will go. The specified Writer must be opened by the user and be writable.</p>
<p>The <code>java.io.Writer</code> will be closed when the appender instance is closed.</p>
<p><b>WARNING:</b> Logging to an unopened Writer will fail. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">writer</td><td>An already opened Writer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a6c8e2c71b74a5c4f567a45fe723e6094"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void subAppend </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Actual writing occurs here. </p>
<p>Reimplemented in <a class="el" href="classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton.html#a6c8e2c71b74a5c4f567a45fe723e6094">RollingFileAppenderSkeleton</a>.</p>
</div>
</div>
<a class="anchor" id="ae5576da69e2d3d31bf7e5668833fa2ca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void writeFooter </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></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write a footer as produced by the embedded layout's <a class="el" href="classlog4cxx_1_1_layout.html#ae8f7d8f894b39b251cada7674bdfe8d2" title="Append the footer for the layout format. ">Layout::appendFooter</a> method. </p>
</div>
</div>
<a class="anchor" id="aa0eccd6ddf3cf28dfb087ff6e961d129"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void writeHeader </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></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write a header as produced by the embedded layout's <a class="el" href="classlog4cxx_1_1_layout.html#ad1b07d688e39f3a8d71acec8f6d7b878" title="Append the header for the layout format. ">Layout::appendHeader</a> method. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="writerappender_8h.html">writerappender.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>