blob: b4b23682cab5431c904a202d44c7727f4c5ec152 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>Log4j Runtime Dependencies</title>
</properties>
<body>
<section name="Log4j Runtime Dependencies">
<p>
Some Log4J features depend on external libraries. This page lists the required and optional
dependencies.
</p>
<p>
As of version 2.4, Log4J requires Java 7. Versions 2.3 and earlier require Java 6.
</p>
<a name="log4j-api" />
<h4>log4j-api</h4>
<p>
The Log4J <a href="log4j-api/index.html">API</a> module has no external dependencies.
</p>
<a name="log4j-core" />
<h4>log4j-core</h4>
<p>
The Log4J <a href="log4j-core/index.html">Implementation</a> has several optional
<a href="log4j-core/dependencies.html">dependencies</a>.
See the <a href="log4j-core/dependencies.html#Dependency_Tree">Dependency Tree</a> for the
exact list of JAR files needed for these features.
</p>
<table>
<caption align="top">Optional Dependencies per Feature in Log4J Implementation</caption>
<tr>
<th>Feature</th>
<th>Requirements</th>
</tr>
<tr>
<td>XML configuration</td>
<td>-</td>
</tr>
<tr>
<td>Properties configuration</td>
<td>-</td>
</tr>
<tr>
<td>JSON configuration</td>
<td><a href="https://github.com/FasterXML/jackson">Jackson core and databind</a></td>
</tr>
<tr>
<td>YAML configuration</td>
<td><a href="https://github.com/FasterXML/jackson-dataformat-yaml">Jackson YAML data format</a></td>
</tr>
<tr>
<td>CSV Layout</td>
<td><a href="https://commons.apache.org/proper/commons-csv/">Apache Commons CSV</a></td>
</tr>
<tr>
<td>GELF Layout</td>
<td><a href="https://github.com/FasterXML/jackson">Jackson core</a></td>
</tr>
<tr>
<td>JSON Layout</td>
<td><a href="https://github.com/FasterXML/jackson">Jackson core and databind</a></td>
</tr>
<tr>
<td>XML Layout</td>
<td><a href="https://github.com/FasterXML/jackson">Jackson core, databind and dataformat XML</a><br />
And <code>com.fasterxml.woodstox:woodstox-core:5.0.2</code></td>
</tr>
<tr>
<td>Async Loggers</td>
<td><a href="http://lmax-exchange.github.io/disruptor/">LMAX Disruptor</a></td>
</tr>
<tr>
<td>Kafka Appender</td>
<td><a href="http://kafka.apache.org/">Kafka client library</a>. Note that you need to use a version of
the Kafka client library matching the Kafka server used.</td>
</tr>
<tr>
<td>SMTP Appender</td>
<td>an implementation of <code>javax.mail</code></td>
</tr>
<tr>
<td>JMS Appender</td>
<td>a JMS broker like <a href="http://activemq.apache.org/">Apache ActiveMQ</a></td>
</tr>
<tr>
<td>Windows console color support</td>
<td><a href="http://jansi.fusesource.org/">Jansi</a></td>
</tr>
<tr>
<td>JDBC Appender</td>
<td>a JDBC driver for the database you choose to write events to</td>
</tr>
<tr>
<td>JPA Appender</td>
<td>the Java Persistence API classes, a JPA provider implementation, and a decorated
entity that the user implements. It also requires an appropriate JDBC driver
</td>
</tr>
<tr>
<td>NoSQL Appender with MongoDB provider</td>
<td>MongoDB Java Client driver</td>
</tr>
<tr>
<td>NoSQL Appender with Apache CouchDB provider</td>
<td>LightCouch CouchDB client library</td>
</tr>
<tr>
<td>Bzip2, Deflate, Pack200, and XZ compression on rollover</td>
<td><a href="http://commons.apache.org/proper/commons-compress/">Apache Commons Compress</a>.
In addition, XZ requires <a href="http://tukaani.org/xz/java.html">XZ for Java</a>.
</td>
</tr>
<tr>
<td>ZeroMQ Appender</td>
<td>
The ZeroMQ appender uses the <a href="https://github.com/zeromq/jeromq">JeroMQ</a> library which is
licensed under the terms of the GNU Lesser General Public License (LGPL). For details see the
files <code>COPYING</code> and <code>COPYING.LESSER</code> included with the JeroMQ distribution.
</td>
</tr>
</table>
<a name="log4j-jcl" />
<h4>log4j-jcl</h4>
<p>
The <a href="log4j-jcl/index.html">Commons Logging Bridge</a> requires
<a href="http://commons.apache.org/proper/commons-logging/">Commons Logging</a>. See the
<a href="log4j-jcl/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact
list of JAR files needed.
</p>
<a name="log4j-1.2-api" />
<h4>log4j-1.2-api</h4>
<p>
The <a href="log4j-1.2-api/index.html">Log4j 1.2 Bridge</a> has no external dependencies.
This only requires the Log4j API and Log4j Core.
</p>
<a name="log4j-slf4j-impl" />
<h4>log4j-slf4j-impl</h4>
<p>
The Log4j 2 <a href="log4j-slf4j-impl/index.html">SLF4J Binding</a> depends on the
<a href="http://www.slf4j.org/">SLF4J</a> API. See the
<a href="log4j-slf4j-impl/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact
list of JAR files needed.
</p>
<p class="text-warning">
<i class="icon-exclamation-sign"/>
<b><font color="red">
Do not use this with the <a href="#log4j-to-slf4j">log4j-to-slf4j</a> module.
</font></b>
</p>
<a name="log4j-jul" />
<h4>log4j-jul</h4>
<p>
The Log4j 2 <a href="log4j-jul/index.html">Java Util Logging Adapter</a> has no external dependencies.
It optionally depends on the <a href="log4j-api/index.html">Log4j Core</a> library. The only required module
is the Log4j API.
</p>
<a name="log4j-to-slf4j" />
<h4>log4j-to-slf4j</h4>
<p>
The <a href="log4j-to-slf4j/index.html">Log4j 2 to SLF4J Adapter</a> requires the
<a href="http://www.slf4j.org/">SLF4J</a> API and an SLF4J implementation. See the
<a href="log4j-to-slf4j/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of JAR files needed.
</p>
<p class="text-warning">
<i class="icon-exclamation-sign"/>
<b><font color="red">
Do not use this with the <a href="#log4j-slf4j-impl">log4j-slf4j-impl</a> module.
</font></b>
</p>
<a name="log4j-flume-ng" />
<h4>log4j-flume-ng</h4>
<p>
The <a href="log4j-flume-ng/index.html">Flume Appender</a> requires
<a href="http://flume.apache.org/">Apache Flume</a> and <a href="http://avro.apache.org/">Apache Avro</a>.
The persistent agent uses Berkeley DB. See the
<a href="log4j-flume-ng/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of JAR files needed.
</p>
<a name="log4j-taglib" />
<h4>log4j-taglib</h4>
<p>
The Log4j <a href="log4j-taglib/index.html">Log Tag Library</a> requires the
<a href="http://jakarta.apache.org/taglibs/log/">Jakarta Commons Log Taglib</a> and the Servlet API. See the
<a href="log4j-taglib/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of JAR files needed.
</p>
<a name="log4j-jmx-gui" />
<h4>log4j-jmx-gui</h4>
<p>
The Log4j <a href="log4j-jmx-gui/index.html">JMX GUI</a> requires the JConsole jar when run as a JConsole plugin.
Otherwise it has no external dependencies. See the
<a href="log4j-jmx-gui/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of JAR files needed.
</p>
<a name="log4j-web" />
<h4>log4j-web</h4>
<p>
The Log4j <a href="log4j-web/index.html">Web</a> module requires the Servlet API. See the
<a href="log4j-web/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of JAR files needed.
Note that this works with the Servlet 2.5 API as well as the Servlet 3.x API.
</p>
<a name="log4j-nosql" />
<h4>log4j-nosql</h4>
<p>
The Log4J <a href="log4j-nosql/index.html">NoSQL Appenders</a> module has several optional
<a href="log4j-nosql/dependencies.html">dependencies</a>.
See the <a href="log4j-nosql/dependencies.html#Dependency_Tree">Dependency Tree</a> for the
exact list of JAR files needed for these features.
</p>
<table>
<caption align="top">Optional Dependencies per Feature in Log4J NoSQL Appenders</caption>
<tr>
<td>NoSQL Appender with <a href="http://www.mongodb.org/">MongoDB</a> provider</td>
<td>the <a href="http://docs.mongodb.org/ecosystem/drivers/java/">MongoDB Java Client driver</a></td>
</tr>
<tr>
<td>NoSQL Appender with <a href="https://couchdb.apache.org/">Apache CouchDB</a> provider</td>
<td>the <a href="http://www.lightcouch.org/">LightCouch</a> CouchDB client library</td>
</tr>
</table>
<a name="log4j-iostreams" />
<h4>log4j-iostreams</h4>
<p>
The Log4j <a href="log4j-iostreams/index.html">IO Streams</a> module has no external dependencies.
This only requires the Log4j API.
</p>
<a name="log4j-api-scala" />
<h4>log4j-api-scala</h4>
<p>
The Log4j <a href="log4j-api-scala_2.11/index.html">Scala API</a> requires Scala runtime library and reflection in
addition to the Log4j API.
</p>
</section>
</body>
</document>