You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2017/01/01 00:49:05 UTC
[5/6] logging-log4j2 git commit: [LOG4J2-1730]: Add documentation for
CassandraAppender
[LOG4J2-1730]: Add documentation for CassandraAppender
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/536f6a8d
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/536f6a8d
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/536f6a8d
Branch: refs/heads/master
Commit: 536f6a8d990a1c2b13aa59c64f1c25f49c0fc856
Parents: 33e7ab3
Author: Matt Sicker <ma...@spr.com>
Authored: Sat Dec 31 18:48:39 2016 -0600
Committer: Matt Sicker <ma...@spr.com>
Committed: Sat Dec 31 18:48:39 2016 -0600
----------------------------------------------------------------------
src/site/site.xml | 1 +
src/site/xdoc/manual/appenders.xml | 157 ++++++++++++++++++++++++++++++++
2 files changed, 158 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/536f6a8d/src/site/site.xml
----------------------------------------------------------------------
diff --git a/src/site/site.xml b/src/site/site.xml
index b69d3a1..1636574 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -122,6 +122,7 @@
<item name="Appenders" href="/manual/appenders.html" collapse="true">
<item name="Async" href="/manual/appenders.html#AsyncAppender"/>
+ <item name="Cassandra" href="/manual/appenders.html#CassandraAppender"/>
<item name="Console" href="/manual/appenders.html#ConsoleAppender"/>
<item name="Failover" href="/manual/appenders.html#FailoverAppender"/>
<item name="File" href="/manual/appenders.html#FileAppender"/>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/536f6a8d/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index 4cd1092..69fe93b 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -24,6 +24,7 @@
<author email="rgoers@apache.org">Ralph Goers</author>
<author email="ggrgeory@apache.org">Gary Gregory</author>
<author email="nickwilliams@apache.org">Nick Williams</author>
+ <author email="mattsicker@apache.org">Matt SIcker</author>
</properties>
<body>
@@ -49,6 +50,10 @@
<p>
Appenders always have a name so that they can be referenced from Loggers.
</p>
+ <p>
+ In the tables below, the "Type" column corresponds to the Java type expected. For non-JDK classes, these
+ should usually be in <a href="../log4j-core/apidocs/index.html">Log4j Core</a> unless otherwise noted.
+ </p>
<a name="AsyncAppender"/>
<subsection name="AsyncAppender">
<p>The AsyncAppender accepts references to other Appenders and causes LogEvents to be written to them
@@ -232,6 +237,158 @@
</tr>
</table>
</subsection>
+ <a name="CassandraAppender"/>
+ <subsection name="CassandraAppender">
+ <p>
+ The CassandraAppender writes its output to an <a href="https://cassandra.apache.org/">Apache Cassandra</a>
+ database. A keyspace and table must be configured ahead of time, and the columns of that table are mapped
+ in a configuration file. Each column can specify either a <a href="layouts.html">StringLayout</a> (e.g., a
+ <a href="layouts.html#PatternLayout">PatternLayout</a>) along with an optional conversion type, or only
+ a conversion type for <code>org.apache.logging.log4j.spi.ThreadContextMap</code> or
+ <code>org.apache.logging.log4j.spi.ThreadContextStack</code> to store the <a href="thread-context.html">MDC or NDC</a>
+ in a map or list column respectively.
+ </p>
+ <table>
+ <caption align="top">CassandraAppender Parameters</caption>
+ <tr>
+ <th>Parameter Name</th>
+ <th>Type</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>batched</td>
+ <td>boolean</td>
+ <td>Whether or not to use batch statements to write log messages to Cassandra. By default, this is <code>false</code>.</td>
+ </tr>
+ <tr>
+ <td>batchType</td>
+ <td><a href="http://docs.datastax.com/en/drivers/java/3.0/com/datastax/driver/core/BatchStatement.Type.html">BatchStatement.Type</a></td>
+ <td>The batch type to use when using batched writes. By default, this is <code>LOGGED</code>.</td>
+ </tr>
+ <tr>
+ <td>bufferSize</td>
+ <td>int</td>
+ <td>The number of log messages to buffer or batch before writing. By default, no buffering is done.</td>
+ </tr>
+ <tr>
+ <td>clusterName</td>
+ <td>String</td>
+ <td>The name of the Cassandra cluster to connect to.</td>
+ </tr>
+ <tr>
+ <td>columns</td>
+ <td>ColumnMapping[]</td>
+ <td>A list of column mapping configurations. Each column must specify a column name. Each column can
+ have a conversion type specified by its fully qualified class name. By default, the conversion type is
+ <code>String</code>. If the configured type is assignment-compatible with
+ <a class="javadoc" href="../log4j-api/apidocs/org/apache/logging/log4j/spi/ThreadContextMap.html">ThreadContextMap</a>
+ or
+ <a class="javadoc" href="../log4j-api/apidocs/org/apache/logging/log4j/spi/ThreadContextStack.html">ThreadContextStack</a>,
+ then that column will be populated with the MDC or NDC respectively. Otherwise, the layout or pattern
+ specified will be converted into the configured type and stored in that column.
+ </td>
+ </tr>
+ <tr>
+ <td>contactPoints</td>
+ <td>SocketAddress[]</td>
+ <td>A list of hosts and ports of Cassandra nodes to connect to. These must be valid hostnames or IP
+ addresses. By default, if a port is not specified for a host or it is set to 0, then the default
+ Cassandra port of 9042 will be used. By default, <code>localhost:9042</code> will be used.</td>
+ </tr>
+ <tr>
+ <td>filter</td>
+ <td>Filter</td>
+ <td>A Filter to determine if the event should be handled by this Appender. More than one Filter may be used
+ by using a CompositeFilter.</td>
+ </tr>
+ <tr>
+ <td>ignoreExceptions</td>
+ <td>boolean</td>
+ <td>The default is <code>true</code>, causing exceptions encountered while appending events to be
+ internally logged and then ignored. When set to <code>false</code> exceptions will be propagated to the
+ caller, instead. You must set this to <code>false</code> when wrapping this Appender in a
+ <a href="#FailoverAppender">FailoverAppender</a>.</td>
+ </tr>
+ <tr>
+ <td>keyspace</td>
+ <td>String</td>
+ <td>The name of the keyspace containing the table that log messages will be written to.</td>
+ </tr>
+ <tr>
+ <td>name</td>
+ <td>String</td>
+ <td>The name of the Appender.</td>
+ </tr>
+ <tr>
+ <td>password</td>
+ <td>String</td>
+ <td>The password to use (along with the username) to connect to Cassandra.</td>
+ </tr>
+ <tr>
+ <td>table</td>
+ <td>String</td>
+ <td>The name of the table to write log messages to.</td>
+ </tr>
+ <tr>
+ <td>useClockForTimestampGenerator</td>
+ <td>boolean</td>
+ <td>Whether or not to use the configured <code>org.apache.logging.log4j.core.util.Clock</code> as a
+ <a class="javadoc" href="http://docs.datastax.com/en/drivers/java/3.0/com/datastax/driver/core/TimestampGenerator.html">TimestampGenerator</a>.
+ By default, this is <code>false</code>.</td>
+ </tr>
+ <tr>
+ <td>username</td>
+ <td>String</td>
+ <td>The username to use to connect to Cassandra. By default, no username or password is used.</td>
+ </tr>
+ <tr>
+ <td>useTls</td>
+ <td>boolean</td>
+ <td>Whether or not to use TLS/SSL to connect to Cassandra. This is <code>false</code> by default.</td>
+ </tr>
+ </table>
+ <p>
+ Here is an example CassandraAppender configuration:
+ </p>
+ <pre class="prettyprint linenums"><![CDATA[
+<Configuration name="CassandraAppenderTest">
+ <Appenders>
+ <Cassandra name="Cassandra" clusterName="Test Cluster" keyspace="test" table="logs" bufferSize="10" batched="true">
+ <SocketAddress host="localhost" port="9042"/>
+ <ColumnMapping name="id" pattern="%uuid{TIME}" type="java.util.UUID"/>
+ <ColumnMapping name="message" pattern="%message"/>
+ <ColumnMapping name="level" pattern="%level"/>
+ <ColumnMapping name="marker" pattern="%marker"/>
+ <ColumnMapping name="logger" pattern="%logger"/>
+ <ColumnMapping name="timestamp" pattern="%date{UNIX_MILLIS}" type="java.lang.Long"/>
+ <ColumnMapping name="mdc" type="org.apache.logging.log4j.spi.ThreadContextMap"/>
+ <ColumnMapping name="ndc" type="org.apache.logging.log4j.spi.ThreadContextStack"/>
+ </Cassandra>
+ </Appenders>
+ <Loggers>
+ <Logger name="org.apache.logging.log4j.nosql.appender.cassandra" level="DEBUG">
+ <AppenderRef ref="Cassandra"/>
+ </Logger>
+ <Root level="ERROR"/>
+ </Loggers>
+</Configuration>
+]]></pre>
+ <p>
+ This example configuration uses the following table schema:
+ </p>
+ <pre class="prettyprint linenums"><![CDATA[
+CREATE TABLE logs (
+ id timeuuid PRIMARY KEY,
+ message text,
+ level text,
+ marker text,
+ logger text,
+ timestamp timestamp,
+ mdc map<text,text>,
+ ndc list<text>
+);
+]]></pre>
+ </subsection>
<a name="ConsoleAppender"/>
<subsection name="ConsoleAppender">
<p>