| <?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.10.0 the Log4j API is a Java module (with a module-info.java). Many of the other |
| jars are automatic modules. The characteristics of the modules are: |
| |
| <table> |
| <tr> |
| <th>Artifact Name</th> |
| <th>Module Name</th> |
| <th>Module Characteristics</th> |
| </tr> |
| <tr> |
| <td>log4j-api</td> |
| <td>org.apache.logging.log4j</td> |
| <td> |
| <table> |
| <tr> |
| <th>Module Directive</th> |
| <th>Notes</th> |
| </tr> |
| <tr> |
| <td>exports org.apache.logging.log4j</td> |
| <td></td> |
| </tr> |
| <tr> |
| <td>exports org.apache.logging.log4j.message</td> |
| <td></td> |
| </tr> |
| <tr> |
| <td>exports org.apache.logging.log4j.simple</td> |
| <td></td> |
| </tr> |
| <tr> |
| <td>exports org.apache.logging.log4j.spi</td> |
| <td></td> |
| </tr> |
| <tr> |
| <td>exports org.apache.logging.log4j.spi</td> |
| <td></td> |
| </tr> |
| <tr> |
| <td>exports org.apache.logging.log4j.util</td> |
| <td>Some classes in this package are used by the logging implementation and should be |
| considered private. The module info definition may be modified in the future to export |
| these only to the logging implmentation.</td> |
| </tr> |
| <tr> |
| <td>uses org.apache.logging.log4j.spi.Provider</td> |
| <td>Service that must be provided by the logging implementation.</td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td>log4j-appserver</td> |
| <td>org.apache.logging.log4j.appserver</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-cassandra</td> |
| <td>org.apache.logging.log4j.cassandra</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-core</td> |
| <td>org.apache.logging.log4j.core</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-couchdb</td> |
| <td>org.apache.logging.log4j.couchdb</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-docker</td> |
| <td>org.apache.logging.log4j.docker</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-1.2-api</td> |
| <td>org.apache.log4j</td> |
| <td>Automatic Module</td> |
| </tr> |
| |
| <tr> |
| <td>log4j-flume-ng</td> |
| <td>org.apache.logging.log4j.flume</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-iostreams</td> |
| <td>org.apache.logging.log4j.iostreams</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-jcl</td> |
| <td>org.apache.logging.log4j.jcl</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-jmx-gui</td> |
| <td>org.apache.logging.log4j.jmx.gui</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-jul</td> |
| <td>org.apache.logging.log4j.jul</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-mongodb</td> |
| <td>org.apache.logging.log4j.mongodb</td> |
| <td>Automatic Module</td> |
| </tr> |
| |
| <tr> |
| <td>log4j-osgi</td> |
| <td>org.apache.logging.log4j.osgi</td> |
| <td>Automatic Module. Unclear how OSGi will support Java modules.</td> |
| </tr> |
| <tr> |
| <td>log4j-slf4j-impl</td> |
| <td>org.apache.logging.log4j.slf4j.impl</td> |
| <td>Automatic Module. May require renaming should SLF4J ever require all implementations to have the same |
| module name.</td> |
| </tr> |
| <tr> |
| <td>log4j-taglib</td> |
| <td>org.apache.logging.log4j.taglib</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-to-slf4j</td> |
| <td>org.apache.logging.log4j.slf4j</td> |
| <td>Automatic Module</td> |
| </tr> |
| <tr> |
| <td>log4j-web</td> |
| <td>org.apache.logging.log4j.web</td> |
| <td>Automatic Module</td> |
| </tr> |
| </table> |
| </p> |
| <p> |
| As of version 2.9.1 Log4j supports Java 9 but will still work in Java 7 or 8. In this version log4j-api is |
| packaged as a multi-release jar and supports the use of the StackWalker and Process APIs. |
| </p> |
| <p> |
| As of version 2.4, Log4J requires Java 7. |
| </p> |
| <p> |
| Log4j version 2.3 and older 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">Jackson databind</a> and <a href="https://github.com/FasterXML/jackson-dataformat-yaml">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>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>YAML Layout</td> |
| <td><a href="https://github.com/FasterXML/jackson">Jackson core, databind</a> and <a href="https://github.com/FasterXML/jackson-dataformat-yaml">YAML data format</a></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 and Log4j MongoDB library</td> |
| </tr> |
| <tr> |
| <td>NoSQL Appender with Apache CouchDB provider</td> |
| <td>LightCouch CouchDB client library and Log4j CouchDB library</td> |
| </tr> |
| <tr> |
| <td>Cassandra Appender</td> |
| <td>Datastax Cassandra driver and Log4j Cassandra 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 Mozilla Public License Version 2.0 (MPLv2). For details see the |
| file <a href="https://github.com/zeromq/jeromq/blob/master/LICENSE">LICENSE</a> included with the JeroMQ |
| distribution. |
| </td> |
| </tr> |
| </table> |
| <a name="log4j-docker"/> |
| <h4>log4j-docker</h4> |
| <p> |
| <a href="log4j-docker/index.html">Log4j Docker Support</a> requires |
| <a href="https://github.com/FasterXML/jackson">Jackson annotations, core, and databind</a>. See the |
| <a href="log4j-docker/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of |
| JAR files needed. |
| </p> |
| <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-spring-cloud-config-client"/> |
| <h4>log4j-spring-cloud-config-client</h4> |
| <p> |
| <a href="log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html">Log4j Spring Cloud Config Client</a> requires |
| <a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config</a>. |
| <a href="https://spring.io/projects/spring-cloud-bus">Spring Cloud Bus</a> is required if notification of logging |
| configuration changes is desired. <a href="https://spring.io/projects/spring-boot">Spring Boot</a> is required |
| but applications do not have to be packaged as a Spring Boot application. |
| <a href="log4j-spring-cloud-config/log4j-spring-cloud-config-client/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-couchdb" /> |
| <h4>log4j-couchdb</h4> |
| <p> |
| The Log4J <a href="log4j-couchdb/index.html">CouchDB</a> module depends on |
| the <a href="http://www.lightcouch.org/">LightCouch</a> CouchDB client library. |
| </p> |
| |
| <a name="log4j-mongodb" /> |
| <h4>log4j-mongodb</h4> |
| <p> |
| The Log4J <a href="log4j-mongodb/index.html">MongoDB</a> module depends on |
| the <a href="http://docs.mongodb.org/ecosystem/drivers/java/">MongoDB Java Client driver</a>. |
| </p> |
| |
| <a name="log4j-cassandra" /> |
| <h4>log4j-cassandra</h4> |
| <p> |
| The Log4J <a href="log4j-cassandra/index.html">Cassandra</a> module depends on |
| the <a href="http://docs.datastax.com/en/developer/driver-matrix/doc/javaDrivers.html">Datastax Cassandra driver</a>. |
| </p> |
| |
| <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="manual/scala-api.html">Scala API</a> requires Scala runtime library and reflection in |
| addition to the Log4j API. |
| </p> |
| |
| </section> |
| </body> |
| </document> |