Update docs on using BlockingQueueFactory plugins in AsyncAppender

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/25ea163c
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/25ea163c
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/25ea163c

Branch: refs/heads/feature/LOG4J2-1430
Commit: 25ea163ca136593635f855a8d516f11a2f84d1a5
Parents: 3fdd1fc
Author: Matt Sicker <boa...@gmail.com>
Authored: Sat Jun 18 19:01:44 2016 -0500
Committer: Matt Sicker <boa...@gmail.com>
Committed: Sat Jun 18 19:01:44 2016 -0500

----------------------------------------------------------------------
 src/site/xdoc/manual/appenders.xml | 40 +++++++++++++++++++++++++--------
 1 file changed, 31 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/25ea163c/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml 
b/src/site/xdoc/manual/appenders.xml
index 9af6a57..321eeb4 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -65,37 +65,59 @@
             Consider using <a href="async.html">lock-free Async Loggers</a> 
for optimal performance.
           </p>
           <p>
-            Starting in Log4j 2.7, a custom implementation of 
<tt>BlockingQueue</tt> can be specified by setting the
-            system property <tt>log4j.BlockingQueueFactory</tt> to the fully 
qualified class name of an implementation of
-            <a class="javadoc" 
href="../log4j-core/apidocs/org/apache/logging/log4j/core/util/BlockingQueueFactory.html">BlockingQueueFactory</a>.
-            Log4j comes with the following:
+            Starting in Log4j 2.7, a custom implementation of 
<tt>BlockingQueue</tt> or <tt>TransferQueue</tt> can be
+            specified using a
+            <a class="javadoc" 
href="../log4j-core/apidocs/org/apache/logging/log4j/core/async/BlockingQueueFactory.html">BlockingQueueFactory</a>
+            plugin. To override the default <tt>BlockingQueueFactory</tt>, 
specify the plugin inside an
+            <code><![CDATA[<Async/>]]></code> element like so:
+          </p>
+          <pre class="prettyprint linenums"><![CDATA[
+<Configuration name="LinkedTransferQueueExample">
+  <Appenders>
+    <List name="List"/>
+    <Async name="Async" bufferSize="262144">
+      <AppenderRef ref="List"/>
+      <LinkedTransferQueue/>
+    </Async>
+  </Appenders>
+  <Loggers>
+    <Root>
+      <AppenderRef ref="Async"/>
+    </Root>
+  </Loggers>
+</Configuration>]]></pre>
+          <p>
+            Log4j ships with the following implementations:
           </p>
           <table>
             <caption align="top">BlockingQueueFactory Implementations</caption>
             <tr>
-              <th>Class Name</th>
+              <th>Plugin Name</th>
               <th>Description</th>
             </tr>
             <tr>
-              
<td><tt>org.apache.logging.log4j.core.async.ArrayBlockingQueueFactory</tt></td>
+              <td>ArrayBlockingQueue</td>
               <td>
                 This is the default implementation that uses
                 <a class="javadoc" 
href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ArrayBlockingQueue.html";>ArrayBlockingQueue</a>.
               </td>
             </tr>
             <tr>
-              
<td><tt>org.apache.logging.log4j.core.async.DisruptorBlockingQueueFactory</tt></td>
+              <td>DisruptorBlockingQueue</td>
               <td>
                 This uses the <a 
href="https://github.com/conversant/disruptor";>Conversant Disruptor</a> 
implementation
-                of <tt>BlockingQueue</tt>.
+                of <tt>BlockingQueue</tt>. This plugin takes a single optional 
attribute, <tt>spinPolicy</tt>, which
+                corresponds to
                 <!-- TODO: this needs performance charts and links added -->
               </td>
             </tr>
             <tr>
-              
<td><tt>org.apache.logging.log4j.core.async.LinkedTransferQueueFactory</tt></td>
+              <td>LinkedTransferQueue</td>
               <td>
                 This uses the new in Java 7 implementation
                 <a class="javadoc" 
href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/LinkedTransferQueue.html";>LinkedTransferQueue</a>.
+                Note that this queue does not use the <tt>bufferSize</tt> 
configuration attribute from AsyncAppender as
+                <tt>LinkedTransferQueue</tt> does not support a maximum 
capacity.
                 <!-- TODO: this needs performance charts and links added -->
               </td>
             </tr>

Reply via email to