Sophie

Sophie

distrib > Fedora > 16 > x86_64 > by-pkgid > ef445f0ce4be1c28e0c51502e9156d24 > files > 223

log4cxx-devel-0.10.0-10.fc15.x86_64.rpm

<!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"/>
<title>Apache log4cxx: AsyncAppender Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Apache log4cxx&#160;<span id="projectnumber">Version 0.10.0</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <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>
    </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>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classlog4cxx_1_1_async_appender.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<h1>AsyncAppender Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="log4cxx::AsyncAppender" --><!-- doxytag: inherits="log4cxx::spi::AppenderAttachable,log4cxx::AppenderSkeleton" -->
<p>The <a class="el" href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously.">AsyncAppender</a> lets users log events asynchronously.  
<a href="#_details">More...</a></p>

<p>Inherits <a class="el" href="classlog4cxx_1_1spi_1_1_appender_attachable.html">log4cxx::spi::AppenderAttachable</a>, and <a class="el" href="classlog4cxx_1_1_appender_skeleton.html">log4cxx::AppenderSkeleton</a>.</p>

<p><a href="classlog4cxx_1_1_async_appender-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><b>DiscardSummary</b></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#acb5782ae65545e386c7010b0ea149486">AsyncAppender</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new instance.  <a href="#acb5782ae65545e386c7010b0ea149486"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a852c4c4046ac937718202ff20bc7bf24">~AsyncAppender</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a852c4c4046ac937718202ff20bc7bf24"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a0198815940c2715c84b0e04828cf8dfa">addRef</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a55c31efee1904916b999395fa4d46a24">releaseRef</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#ad1aff470bf79a972a9240069e721340a">addAppender</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">AppenderPtr</a> &amp;newAppender)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add appender.  <a href="#ad1aff470bf79a972a9240069e721340a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a77865c6199c0128510162f6a598f2f41">append</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">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><td class="mdescLeft">&#160;</td><td class="mdescRight">Subclasses of <code><a class="el" href="classlog4cxx_1_1_appender_skeleton.html" title="Implementation base class for all appenders.">AppenderSkeleton</a></code> should implement this method to perform actual logging.  <a href="#a77865c6199c0128510162f6a598f2f41"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a5ae591df94fc66ccb85cbb6565368bca">close</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Close this <code><a class="el" href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously.">AsyncAppender</a></code> by interrupting the dispatcher thread which will process all pending events before exiting.  <a href="#a5ae591df94fc66ccb85cbb6565368bca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">AppenderList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a50406a51528755243dd5e610059ad158">getAllAppenders</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get iterator over attached appenders.  <a href="#a50406a51528755243dd5e610059ad158"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">AppenderPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a86dc46448007c730aff1fa48d4bbb871">getAppender</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a9de136310b76f5d0aa8b40848216b167">name</a>) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get appender by name.  <a href="#a86dc46448007c730aff1fa48d4bbb871"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#ad70ffd01a630335c8e0465b04f360db4">getLocationInfo</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets whether the location of the logging request call should be captured.  <a href="#ad70ffd01a630335c8e0465b04f360db4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#ac914ad2b021ff666a9cda9843c421f8f">isAttached</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">AppenderPtr</a> &amp;appender) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if specified appender is attached.  <a href="#ac914ad2b021ff666a9cda9843c421f8f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a4312e727a9ea814779d2c9950dc3c73e">requiresLayout</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Configurators call this method to determine if the appender requires a layout.  <a href="#a4312e727a9ea814779d2c9950dc3c73e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#afdaed2b90f72b12d56d13ca059e8872c">removeAllAppenders</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and closes all attached appenders.  <a href="#afdaed2b90f72b12d56d13ca059e8872c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#aa3b961aebd8e78161c7ed93fd8c2a8b3">removeAppender</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">AppenderPtr</a> &amp;appender)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an appender.  <a href="#aa3b961aebd8e78161c7ed93fd8c2a8b3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a1ede12aab7e165cb098c689304f65a1d">removeAppender</a> (const <a class="el" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;<a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a9de136310b76f5d0aa8b40848216b167">name</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove appender by name.  <a href="#a1ede12aab7e165cb098c689304f65a1d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a14e99c05316a681a784c6cc8d33d6c2d">setLocationInfo</a> (bool flag)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <b>LocationInfo</b> attribute is provided for compatibility with log4j and has no effect on the log output.  <a href="#a14e99c05316a681a784c6cc8d33d6c2d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#ad425c4f62bccf271e87b4669994be47b">setBufferSize</a> (int size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <b>BufferSize</b> option takes a non-negative integer value.  <a href="#ad425c4f62bccf271e87b4669994be47b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#a5f0ab7189f063f69cdd39cbf74d5aaf5">getBufferSize</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the current buffer size.  <a href="#a5f0ab7189f063f69cdd39cbf74d5aaf5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#ae3c0e6fe4fb70964ecbae244efcda130">setBlocking</a> (bool value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether appender should wait if there is no space available in the event buffer or immediately return.  <a href="#ae3c0e6fe4fb70964ecbae244efcda130"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_appender.html#ab7a5e14dfb388a4e9a47a5bcf66ae8fa">getBlocking</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets whether appender should block calling thread when buffer is full.  <a href="#ab7a5e14dfb388a4e9a47a5bcf66ae8fa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1_async_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><td class="mdescLeft">&#160;</td><td class="mdescRight">Set appender properties by name.  <a href="#ac1d269357907e0809687a2bec962e1c8"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously.">AsyncAppender</a> lets users log events asynchronously. </p>
<p>It uses a bounded buffer to store logging events.</p>
<p>The <a class="el" href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously.">AsyncAppender</a> will collect the events sent to it and then dispatch them to all the appenders that are attached to it. You can attach multiple appenders to an <a class="el" href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously.">AsyncAppender</a>.</p>
<p>The <a class="el" href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously.">AsyncAppender</a> uses a separate thread to serve the events in its bounded buffer.</p>
<p><b>Important note:</b> The <code><a class="el" href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously.">AsyncAppender</a></code> can only be script configured using the <a class="el" href="classlog4cxx_1_1xml_1_1_d_o_m_configurator.html">DOMConfigurator</a>. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acb5782ae65545e386c7010b0ea149486"></a><!-- doxytag: member="log4cxx::AsyncAppender::AsyncAppender" ref="acb5782ae65545e386c7010b0ea149486" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlog4cxx_1_1_async_appender.html">AsyncAppender</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create new instance. </p>

</div>
</div>
<a class="anchor" id="a852c4c4046ac937718202ff20bc7bf24"></a><!-- doxytag: member="log4cxx::AsyncAppender::~AsyncAppender" ref="a852c4c4046ac937718202ff20bc7bf24" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="classlog4cxx_1_1_async_appender.html">AsyncAppender</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ad1aff470bf79a972a9240069e721340a"></a><!-- doxytag: member="log4cxx::AsyncAppender::addAppender" ref="ad1aff470bf79a972a9240069e721340a" args="(const AppenderPtr &amp;newAppender)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void addAppender </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">AppenderPtr</a> &amp;&#160;</td>
          <td class="paramname"><em>newAppender</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add appender. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">newAppender</td><td>appender to add, may not be null. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_appender_attachable.html#ab3e43f0096182894e0d5668039d6b32d">AppenderAttachable</a>.</p>

</div>
</div>
<a class="anchor" id="a0198815940c2715c84b0e04828cf8dfa"></a><!-- doxytag: member="log4cxx::AsyncAppender::addRef" ref="a0198815940c2715c84b0e04828cf8dfa" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void addRef </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a0198815940c2715c84b0e04828cf8dfa">AppenderSkeleton</a>.</p>

</div>
</div>
<a class="anchor" id="a77865c6199c0128510162f6a598f2f41"></a><!-- doxytag: member="log4cxx::AsyncAppender::append" ref="a77865c6199c0128510162f6a598f2f41" args="(const spi::LoggingEventPtr &amp;event, log4cxx::helpers::Pool &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void append </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">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><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Subclasses of <code><a class="el" href="classlog4cxx_1_1_appender_skeleton.html" title="Implementation base class for all appenders.">AppenderSkeleton</a></code> should implement this method to perform actual logging. </p>
<p>See also <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a2df87e9db87ebe5396ea94fb9c25c488" title="This method performs threshold checks and invokes filters before delegating actual logging to the sub...">AppenderSkeleton::doAppend</a> method. </p>

<p>Implements <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a4c08a91d859f636117f07463bb53fe41">AppenderSkeleton</a>.</p>

</div>
</div>
<a class="anchor" id="a5ae591df94fc66ccb85cbb6565368bca"></a><!-- doxytag: member="log4cxx::AsyncAppender::close" ref="a5ae591df94fc66ccb85cbb6565368bca" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close this <code><a class="el" href="classlog4cxx_1_1_async_appender.html" title="The AsyncAppender lets users log events asynchronously.">AsyncAppender</a></code> by interrupting the dispatcher thread which will process all pending events before exiting. </p>

<p>Implements <a class="el" href="classlog4cxx_1_1_appender.html#af6ee7eacbde6b379b68d954e44f6e549">Appender</a>.</p>

</div>
</div>
<a class="anchor" id="a50406a51528755243dd5e610059ad158"></a><!-- doxytag: member="log4cxx::AsyncAppender::getAllAppenders" ref="a50406a51528755243dd5e610059ad158" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AppenderList getAllAppenders </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get iterator over attached appenders. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>list of all attached appenders. </dd></dl>

<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_appender_attachable.html#a9a389340213c7fb29c7ddb12cd9a981a">AppenderAttachable</a>.</p>

</div>
</div>
<a class="anchor" id="a86dc46448007c730aff1fa48d4bbb871"></a><!-- doxytag: member="log4cxx::AsyncAppender::getAppender" ref="a86dc46448007c730aff1fa48d4bbb871" args="(const LogString &amp;name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">AppenderPtr</a> getAppender </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> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get appender by name. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>name, may not be null. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>matching appender or null. </dd></dl>

<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_appender_attachable.html#a694ea324c87a215b9c4aeaa553d98d37">AppenderAttachable</a>.</p>

</div>
</div>
<a class="anchor" id="ab7a5e14dfb388a4e9a47a5bcf66ae8fa"></a><!-- doxytag: member="log4cxx::AsyncAppender::getBlocking" ref="ab7a5e14dfb388a4e9a47a5bcf66ae8fa" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool getBlocking </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets whether appender should block calling thread when buffer is full. </p>
<p>If false, messages will be counted by logger and a summary message appended after the contents of the buffer have been appended.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if calling thread will be blocked when buffer is full. </dd></dl>

</div>
</div>
<a class="anchor" id="a5f0ab7189f063f69cdd39cbf74d5aaf5"></a><!-- doxytag: member="log4cxx::AsyncAppender::getBufferSize" ref="a5f0ab7189f063f69cdd39cbf74d5aaf5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int getBufferSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the current buffer size. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the current value of the <b>BufferSize</b> option. </dd></dl>

</div>
</div>
<a class="anchor" id="ad70ffd01a630335c8e0465b04f360db4"></a><!-- doxytag: member="log4cxx::AsyncAppender::getLocationInfo" ref="ad70ffd01a630335c8e0465b04f360db4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool getLocationInfo </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets whether the location of the logging request call should be captured. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the current value of the <b>LocationInfo</b> option. </dd></dl>

</div>
</div>
<a class="anchor" id="ac914ad2b021ff666a9cda9843c421f8f"></a><!-- doxytag: member="log4cxx::AsyncAppender::isAttached" ref="ac914ad2b021ff666a9cda9843c421f8f" args="(const AppenderPtr &amp;appender) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool isAttached </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">AppenderPtr</a> &amp;&#160;</td>
          <td class="paramname"><em>appender</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determines if specified appender is attached. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">appender</td><td>appender. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if attached. </dd></dl>

<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_appender_attachable.html#adc9a0c0b18bea413320aac1eca5da8a0">AppenderAttachable</a>.</p>

</div>
</div>
<a class="anchor" id="a55c31efee1904916b999395fa4d46a24"></a><!-- doxytag: member="log4cxx::AsyncAppender::releaseRef" ref="a55c31efee1904916b999395fa4d46a24" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void releaseRef </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#a55c31efee1904916b999395fa4d46a24">AppenderSkeleton</a>.</p>

</div>
</div>
<a class="anchor" id="afdaed2b90f72b12d56d13ca059e8872c"></a><!-- doxytag: member="log4cxx::AsyncAppender::removeAllAppenders" ref="afdaed2b90f72b12d56d13ca059e8872c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void removeAllAppenders </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes and closes all attached appenders. </p>

<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_appender_attachable.html#ab8123270851c4ea9d45bd4e010a4a655">AppenderAttachable</a>.</p>

</div>
</div>
<a class="anchor" id="a1ede12aab7e165cb098c689304f65a1d"></a><!-- doxytag: member="log4cxx::AsyncAppender::removeAppender" ref="a1ede12aab7e165cb098c689304f65a1d" args="(const LogString &amp;name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void removeAppender </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><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove appender by name. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>name. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_appender_attachable.html#a3dd53e0c7f6baa7d73159ef0e82df529">AppenderAttachable</a>.</p>

</div>
</div>
<a class="anchor" id="aa3b961aebd8e78161c7ed93fd8c2a8b3"></a><!-- doxytag: member="log4cxx::AsyncAppender::removeAppender" ref="aa3b961aebd8e78161c7ed93fd8c2a8b3" args="(const AppenderPtr &amp;appender)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void removeAppender </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">AppenderPtr</a> &amp;&#160;</td>
          <td class="paramname"><em>appender</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes an appender. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">appender</td><td>appender to remove. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classlog4cxx_1_1spi_1_1_appender_attachable.html#ac428000920f71e6deaaf3e78855d5602">AppenderAttachable</a>.</p>

</div>
</div>
<a class="anchor" id="a4312e727a9ea814779d2c9950dc3c73e"></a><!-- doxytag: member="log4cxx::AsyncAppender::requiresLayout" ref="a4312e727a9ea814779d2c9950dc3c73e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool requiresLayout </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></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#a1fa0a21a0f0a6ec3a9e92a98db9ffa85">Appender</a>.</p>

</div>
</div>
<a class="anchor" id="ae3c0e6fe4fb70964ecbae244efcda130"></a><!-- doxytag: member="log4cxx::AsyncAppender::setBlocking" ref="ae3c0e6fe4fb70964ecbae244efcda130" args="(bool value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setBlocking </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>Sets whether appender should wait if there is no space available in the event buffer or immediately return. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>true if appender should wait until available space in buffer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad425c4f62bccf271e87b4669994be47b"></a><!-- doxytag: member="log4cxx::AsyncAppender::setBufferSize" ref="ad425c4f62bccf271e87b4669994be47b" args="(int size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setBufferSize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The <b>BufferSize</b> option takes a non-negative integer value. </p>
<p>This integer value determines the maximum size of the bounded buffer. </p>

</div>
</div>
<a class="anchor" id="a14e99c05316a681a784c6cc8d33d6c2d"></a><!-- doxytag: member="log4cxx::AsyncAppender::setLocationInfo" ref="a14e99c05316a681a784c6cc8d33d6c2d" args="(bool flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setLocationInfo </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The <b>LocationInfo</b> attribute is provided for compatibility with log4j and has no effect on the log output. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">flag</td><td>new value. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac1d269357907e0809687a2bec962e1c8"></a><!-- doxytag: member="log4cxx::AsyncAppender::setOption" ref="ac1d269357907e0809687a2bec962e1c8" args="(const LogString &amp;option, const LogString &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <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><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set appender properties by name. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">option</td><td>property name. </td></tr>
    <tr><td class="paramname">value</td><td>property value. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classlog4cxx_1_1_appender_skeleton.html#aee5023c29cca9dc68164b22a01cb7c6e">AppenderSkeleton</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="asyncappender_8h.html">asyncappender.h</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacelog4cxx.html">log4cxx</a>      </li>
      <li class="navelem"><a class="el" href="classlog4cxx_1_1_async_appender.html">AsyncAppender</a>      </li>
<!--
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>