| //// |
| 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 |
| |
| https://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. |
| //// |
| = Runtime Dependencies |
| |
| Some Log4j features depend on external libraries. This page lists the |
| required and optional dependencies. |
| |
| 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: |
| |
| [cols="3h,5m,12a"] |
| |=== |
| |Artifact Name |Module Name |Module Characteristics |
| |
| |log4j-api |
| |org.apache.logging.log4j |
| | |
| [cols="m,"] |
| !=== |
| !Module Directive !Notes |
| |
| 2+!exports org.apache.logging.log4j |
| |
| 2+!exports org.apache.logging.log4j.message |
| |
| 2+!exports org.apache.logging.log4j.simple |
| |
| 2+!exports org.apache.logging.log4j.spi |
| |
| 2+!exports org.apache.logging.log4j.spi |
| |
| !exports org.apache.logging.log4j.util |
| !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 implementation. |
| |
| !uses org.apache.logging.log4j.spi.Provider |
| !Service that must be provided by the logging implementation. |
| !=== |
| |
| |log4j-core |
| |org.apache.logging.log4j.core |
| |Automatic Module |
| |
| |log4j-1.2-api |
| |org.apache.log4j |
| |Automatic Module |
| |
| |log4j-appserver |
| |org.apache.logging.log4j.appserver |
| |Automatic Module |
| |
| |log4j-cassandra |
| |org.apache.logging.log4j.cassandra |
| |Automatic Module |
| |
| |log4j-couchdb |
| |org.apache.logging.log4j.couchdb |
| |Automatic Module |
| |
| |log4j-docker |
| |org.apache.logging.log4j.docker |
| |Automatic Module |
| |
| |log4j-flume-ng |
| |org.apache.logging.log4j.flume |
| |Automatic Module |
| |
| |log4j-iostreams |
| |org.apache.logging.log4j.iostreams |
| |Automatic Module |
| |
| |log4j-jcl |
| |org.apache.logging.log4j.jcl |
| |Automatic Module |
| |
| |log4j-jmx-gui |
| |org.apache.logging.log4j.jmx.gui |
| |Automatic Module |
| |
| |log4j-jul |
| |org.apache.logging.log4j.jul |
| |Automatic Module |
| |
| |log4j-mongodb |
| |org.apache.logging.log4j.mongodb |
| |Automatic Module |
| |
| |log4j-osgi |
| |org.apache.logging.log4j.osgi |
| |Automatic Module. Unclear how OSGi will support Java modules. |
| |
| |log4j-slf4j-impl |
| |org.apache.logging.log4j.slf4j.impl |
| |Automatic Module. May require renaming should SLF4J ever require all implementations to have the same module name. |
| |
| |log4j-to-slf4j |
| |org.apache.logging.log4j.slf4j |
| |Automatic Module |
| |
| |log4j-taglib |
| |org.apache.logging.log4j.taglib |
| |Automatic Module |
| |
| |log4j-web |
| |org.apache.logging.log4j.web |
| |Automatic Module |
| |=== |
| |
| 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. |
| |
| As of version 2.4, Log4j requires Java 7. |
| |
| Log4j version 2.3 and older require Java 6. |
| |
| log4j-api[[log4j-api]]:: |
| The Log4j link:log4j-api/index.html[API] module has no external |
| dependencies. |
| |
| log4j-core[[log4j-core]]:: |
| The Log4j link:log4j-core/index.html[Implementation] has several |
| optional link:log4j-core/dependencies.html[dependencies]. See the |
| link:log4j-core/dependencies.html#Dependency_Tree[Dependency Tree] for |
| the exact list of JAR files needed for these features. |
| |
| .Optional Dependencies per Feature in Log4j Implementation |
| [cols="1,3"] |
| |=== |
| |Feature |Requirements |
| |
| |XML configuration |
| |- |
| |
| |Properties configuration |
| |- |
| |
| |JSON configuration |
| |https://github.com/FasterXML/jackson[Jackson core and databind] |
| |
| |YAML configuration |
| |https://github.com/FasterXML/jackson[Jackson databind] and https://github.com/FasterXML/jackson-dataformat-yaml[YAML data format] |
| |
| |CSV Layout |
| |https://commons.apache.org/proper/commons-csv/[Apache Commons CSV] |
| |
| |JSON Layout |
| |https://github.com/FasterXML/jackson[Jackson core and databind] |
| |
| |XML Layout |
| |https://github.com/FasterXML/jackson[Jackson core, databind and dataformat XML] and `com.fasterxml.woodstox:woodstox-core:5.0.2` |
| |
| |YAML Layout |
| |https://github.com/FasterXML/jackson[Jackson core, databind] and https://github.com/FasterXML/jackson-dataformat-yaml[YAML data format] |
| |
| |Async Loggers |
| |http://lmax-exchange.github.io/disruptor/[LMAX Disruptor] |
| |
| |Kafka Appender |
| a|http://kafka.apache.org/[Kafka client library]. |
| [NOTE] |
| ==== |
| You need to use a version of the Kafka client library matching the Kafka server used. |
| ==== |
| |
| |SMTP Appender |
| |an implementation of `javax.mail` |
| |
| |JMS Appender |
| |a JMS broker like http://activemq.apache.org/[Apache ActiveMQ] |
| |
| |Windows console color support |
| |http://jansi.fusesource.org/[Jansi] |
| |
| |JDBC Appender |
| |a JDBC driver for the database you choose to write events to |
| |
| |JPA Appender |
| |the Java Persistence API classes, a JPA provider implementation, and a decorated entity that the user implements. |
| It also requires an appropriate JDBC driver |
| |
| |NoSQL Appender with MongoDB provider |
| |MongoDB Java Client driver and Log4j MongoDB library |
| |
| |NoSQL Appender with Apache CouchDB provider |
| |LightCouch CouchDB client library and Log4j CouchDB library |
| |
| |Cassandra Appender |
| |Datastax Cassandra driver and Log4j Cassandra library |
| |
| |Bzip2, Deflate, Pack200, and XZ compression on rollover |
| |http://commons.apache.org/proper/commons-compress/[Apache Commons Compress]. |
| In addition, XZ requires http://tukaani.org/xz/java.html[XZ for Java]. |
| |
| |ZeroMQ Appender |
| |The ZeroMQ appender uses the https://github.com/zeromq/jeromq[JeroMQ] library which is licensed under the terms of the Mozilla Public License Version 2.0 (MPLv2). |
| For details see the file https://github.com/zeromq/jeromq/blob/master/LICENSE[LICENSE] included with the JeroMQ distribution. |
| |
| |log4j-1.2-api[[log4j-1.2-api]] |
| |The link:log4j-1.2-api/index.html[Log4j 1.2 Bridge] has no external |
| dependencies. This only requires the Log4j API. Including Log4j Core provides optional, extra functionality. |
| |
| |log4j-api-scala[[log4j-api-scala]] |
| |The Log4j link:manual/scala-api.html[Scala API] requires Scala runtime |
| library and reflection in addition to the Log4j API. |
| |
| |log4j-cassandra[[log4j-cassandra]] |
| |The Log4j link:log4j-cassandra/index.html[Cassandra] module depends on the |
| http://docs.datastax.com/en/developer/driver-matrix/doc/javaDrivers.html[Datastax |
| Cassandra driver]. |
| |
| |log4j-couchdb[[log4j-couchdb]] |
| |The Log4j link:log4j-couchdb/index.html[CouchDB] module depends on the |
| http://www.lightcouch.org/[LightCouch] CouchDB client library. |
| |
| |log4j-docker |
| |link:log4j-docker/index.html[Log4j Docker Support] requires |
| https://github.com/FasterXML/jackson[Jackson annotations, core, and databind]. See the |
| link:log4j-docker/dependencies.html#Dependency_Tree[Dependency Tree] for the exact list of |
| JAR files needed. |
| |
| |log4j-flume-ng[[log4j-flume-ng]] |
| |The link:log4j-flume-ng/index.html[Flume Appender] requires |
| http://flume.apache.org/[Apache Flume] and |
| http://avro.apache.org/[Apache Avro]. The persistent agent uses Berkeley DB. See the |
| link:log4j-flume-ng/dependencies.html#Dependency_Tree[Dependency Tree] |
| for the exact list of JAR files needed. |
| |
| |log4j-iostreams[[log4j-iostreams]] |
| |The Log4j link:log4j-iostreams/index.html[IO Streams] module has no |
| external dependencies. This only requires the Log4j API. |
| |
| |log4j-jcl[[log4j-jcl]] |
| |The link:log4j-jcl/index.html[Commons Logging Bridge] requires |
| http://commons.apache.org/proper/commons-logging/[Commons Logging]. See |
| the link:log4j-jcl/dependencies.html#Dependency_Tree[Dependency Tree] |
| for the exact list of JAR files needed. |
| |
| |log4j-jmx-gui[[log4j-jmx-gui]] |
| |The Log4j link:log4j-jmx-gui/index.html[JMX GUI] requires the JConsole |
| jar when run as a JConsole plugin. Otherwise it has no external |
| dependencies. See the |
| link:log4j-jmx-gui/dependencies.html#Dependency_Tree[Dependency Tree] |
| for the exact list of JAR files needed. |
| |
| |log4j-jul[[log4j-jul]] |
| |The Log4j 2 link:log4j-jul/index.html[Java Util Logging Adapter] has no |
| external dependencies. It optionally depends on the |
| link:log4j-api/index.html[Log4j Core] library. The only required module |
| is the Log4j API. |
| |
| |log4j-mongodb[[log4j-mongodb]] |
| |The Log4j link:log4j-mongodb/index.html[MongoDB] module depends on the |
| http://docs.mongodb.org/ecosystem/drivers/java/[MongoDB Java Client |
| driver]. |
| |
| |log4j-slf4j-impl[[log4j-slf4j-impl]] |
| |The Log4j 2 link:log4j-slf4j-impl/index.html[SLF4J Binding] depends on |
| the http://www.slf4j.org/[SLF4J] API. See the |
| link:log4j-slf4j-impl/dependencies.html#Dependency_Tree[Dependency Tree] |
| for the exact list of JAR files needed. |
| |
| WARNING: Do not use this with the link:#log4j-to-slf4j[log4j-to-slf4j] module. |
| |
| |log4j-spring-cloud-config-client[[log4j-spring-cloud-config-client]] |
| |link:log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html[Log4j Spring Cloud Config Client] requires |
| https://spring.io/projects/spring-cloud-config[Spring Cloud Config]. |
| https://spring.io/projects/spring-cloud-bus[Spring Cloud Bus] is required if notification of logging |
| configuration changes is desired. https://spring.io/projects/spring-boot[Spring Boot] is required |
| but applications do not have to be packaged as a Spring Boot application. |
| See link:log4j-spring-cloud-config/log4j-spring-cloud-config-client/dependencies.html#Dependency_Tree[Dependency Tree] |
| for the exact list of JAR files needed. |
| |
| |log4j-taglib[[log4j-taglib]] |
| |The Log4j link:log4j-taglib/index.html[Log Tag Library] requires the |
| http://jakarta.apache.org/taglibs/log/[Jakarta Commons Log Taglib] and |
| the Servlet API. See the |
| link:log4j-taglib/dependencies.html#Dependency_Tree[Dependency Tree] for |
| the exact list of JAR files needed. |
| |
| |log4j-to-slf4j[[log4j-to-slf4j]] |
| |The link:log4j-to-slf4j/index.html[Log4j 2 to SLF4J Adapter] requires |
| the http://www.slf4j.org/[SLF4J] API and an SLF4J implementation. See |
| the link:log4j-to-slf4j/dependencies.html#Dependency_Tree[Dependency |
| Tree] for the exact list of JAR files needed. |
| |
| WARNING: Do not use this with the link:#log4j-slf4j-impl[log4j-slf4j-impl] module. |
| |
| |log4j-web[[log4j-web]] |
| |The Log4j link:log4j-web/index.html[Web] module requires the Servlet |
| API. See the link:log4j-web/dependencies.html#Dependency_Tree[Dependency |
| Tree] 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. |
| |
| |=== |