Update AsyncAppender documentation regarding custom BlockingQueueFactory implementations
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/ebc5e78b Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/ebc5e78b Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/ebc5e78b Branch: refs/heads/master Commit: ebc5e78b923f3661308a6f7b53a62e43a0d1eb95 Parents: 4819624 Author: Matt Sicker <boa...@gmail.com> Authored: Wed Jun 15 23:00:06 2016 -0500 Committer: Matt Sicker <boa...@gmail.com> Committed: Wed Jun 15 23:00:06 2016 -0500 ---------------------------------------------------------------------- src/site/xdoc/manual/appenders.xml | 40 ++++++++++++++++++++++---- src/site/xdoc/manual/configuration.xml.vm | 6 ++++ 2 files changed, 41 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ebc5e78b/src/site/xdoc/manual/appenders.xml ---------------------------------------------------------------------- diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml index cf4916f..806e578 100644 --- a/src/site/xdoc/manual/appenders.xml +++ b/src/site/xdoc/manual/appenders.xml @@ -65,11 +65,41 @@ Consider using <a href="async.html">lock-free Async Loggers</a> for optimal performance. </p> <p> - Starting in Log4j 2.7, if the <a href="https://github.com/conversant/disruptor">Conversant Disruptor</a> - library is on your classpath, then it will be used instead of <tt>ArrayBlockingQueue</tt>. This provides a - performance increase over the old AsyncAppender implementation, but <a href="async.html">async logging</a> - still provides higher throughput. - <!-- TODO: this needs performance charts added --> + 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: + </p> + <table> + <caption align="top">BlockingQueueFactory Implementations</caption> + <tr> + <th>Class Name</th> + <th>Description</th> + </tr> + <tr> + <td><tt>org.apache.logging.log4j.core.util.ArrayBlockingQueueFactory</tt></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.util.DisruptorBlockingQueueFactory</tt></td> + <td> + This uses the <a href="https://github.com/conversant/disruptor">Conversant Disruptor</a> implementation + of <tt>BlockingQueue</tt>. + <!-- TODO: this needs performance charts and links added --> + </td> + </tr> + <tr> + <td><tt>org.apache.logging.log4j.core.util.LinkedTransferQueueFactory</tt></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>. + <!-- TODO: this needs performance charts and links added --> + </td> + </tr> + </table> </p> <table> <caption align="top">AsyncAppender Parameters</caption> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ebc5e78b/src/site/xdoc/manual/configuration.xml.vm ---------------------------------------------------------------------- diff --git a/src/site/xdoc/manual/configuration.xml.vm b/src/site/xdoc/manual/configuration.xml.vm index 1276a0e..d7d281c 100644 --- a/src/site/xdoc/manual/configuration.xml.vm +++ b/src/site/xdoc/manual/configuration.xml.vm @@ -2004,6 +2004,12 @@ public class AwesomeTest { <td>Prints a stacktrace to the <a href="#StatusMessages">status logger</a> at DEBUG level when the LoggerContext is started. For debug purposes.</td> </tr> + <tr> + <td><a name="log4j.BlockingQueueFactory"/>log4j.BlockingQueueFactory</td> + <td>org.apache.logging.log4j.core.util.ArrayBlockingQueueFactory</td> + <td>Specifies what type of <tt>BlockingQueue</tt> implementation to use with + <a href="appenders.html#AsyncAppender">AsyncAppender</a>.</td> + </tr> </table> </subsection>