Log4j 运行时依赖项
某些 Log4J 功能依赖于外部库。此页面列出了必需和可选的依赖项。
从 2.10.0 版本开始,Log4j API 是一个命名的 Java 模块(带有 module-info.java)。从 2.21.0 版本开始,所有剩余的工件都是命名的模块。模块的特征是
工件名称 | 模块名称 | 模块特征 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
log4j-api | org.apache.logging.log4j |
|
||||||||||||||||
log4j-appserver | org.apache.logging.log4j.appserver | 命名模块 | ||||||||||||||||
log4j-cassandra | org.apache.logging.log4j.cassandra | 命名模块 | ||||||||||||||||
log4j-core | org.apache.logging.log4j.core | 命名模块。它的大多数依赖项都是可选的。 | ||||||||||||||||
log4j-couchdb | org.apache.logging.log4j.couchdb | 命名模块 | ||||||||||||||||
log4j-docker | org.apache.logging.log4j.docker | 命名模块 | ||||||||||||||||
log4j-1.2-api | org.apache.log4j | 命名模块 | ||||||||||||||||
log4j-flume-ng | org.apache.logging.log4j.flume | 命名模块 | ||||||||||||||||
log4j-iostreams | org.apache.logging.log4j.iostreams | 命名模块 | ||||||||||||||||
log4j-jakarta-smtp | org.apache.logging.log4j.smtp | 命名模块 | ||||||||||||||||
log4j-jakarta-web | org.apache.logging.log4j.web | 命名模块。使用与 log4j-web 相同的名称,因为它等效于 Jakarta EE 9。 |
||||||||||||||||
log4j-jcl | org.apache.logging.log4j.jcl | 命名模块 | ||||||||||||||||
log4j-jul | org.apache.logging.log4j.jul | 命名模块 | ||||||||||||||||
log4j-mongodb | org.apache.logging.log4j.mongodb | 命名模块 | ||||||||||||||||
log4j-slf4j-impl | org.apache.logging.log4j.slf4j.impl | 命名模块 | ||||||||||||||||
log4j-slf4j2-impl | org.apache.logging.log4j.slf4j2.impl | 命名模块 | ||||||||||||||||
log4j-taglib | org.apache.logging.log4j.taglib | 命名模块 | ||||||||||||||||
log4j-to-slf4j | org.apache.logging.log4j.to.slf4j | 命名模块 | ||||||||||||||||
log4j-web | org.apache.logging.log4j.web | 命名模块。使用与 log4j-jakarta-web 相同的名称,因为它等效于 Java EE 8。 |
从 2.9.1 版本开始,Log4j 支持 Java 9,但仍将在 Java 7 或 8 中运行。在此版本中,log4j-api 被打包为多版本 jar,并支持使用 StackWalker 和 Process API。
从 2.4 版本开始,Log4J 需要 Java 7。
Log4j 2.3 及更早版本需要 Java 6。
log4j-api
Log4J API 模块没有外部依赖项。
log4j-core
Log4J 实现 有几个可选的 依赖项。有关这些功能所需的 JAR 文件的完整列表,请参阅 依赖项树。
功能 | 要求 |
---|---|
XML 配置 | - |
属性配置 | - |
JSON 配置 | Jackson core 和 databind |
YAML 配置 | Jackson databind 和 YAML 数据格式 |
CSV 布局 | Apache Commons CSV |
JSON 布局 | Jackson core 和 databind |
XML 布局 | Jackson core、databind 和 dataformat XML 以及 com.fasterxml.woodstox:woodstox-core:5.0.2 |
YAML 布局 | Jackson core、databind 和 YAML 数据格式 |
异步记录器 | LMAX Disruptor |
Kafka 附加器 | Kafka 客户端库。请注意,您需要使用与所用 Kafka 服务器匹配的 Kafka 客户端库版本。 |
SMTP 附加器 | javax.mail 的实现 |
JMS 附加器 | JMS 代理,例如 Apache ActiveMQ |
Windows 控制台颜色支持 | Jansi |
JDBC 附加器 | 您选择将事件写入的数据库的 JDBC 驱动程序 |
JPA 附加器 | Java 持久性 API 类、JPA 提供程序实现以及用户实现的装饰实体。它还需要适当的 JDBC 驱动程序 |
带有 MongoDB 提供程序的 NoSQL 附加器 | MongoDB Java 客户端驱动程序和 Log4j MongoDB 库 |
带有 Apache CouchDB 提供程序的 NoSQL 附加器 | LightCouch CouchDB 客户端库和 Log4j CouchDB 库 |
Cassandra 附加器 | Datastax Cassandra 驱动程序和 Log4j Cassandra 库 |
在滚动时进行 Bzip2、Deflate、Pack200 和 XZ 压缩 | Apache Commons Compress。此外 |
ZeroMQ 附加器 | ZeroMQ 附加器使用 JeroMQ 库,该库根据 Mozilla 公共许可证版本 2.0 (MPLv2) 的条款获得许可。有关详细信息,请参阅 JeroMQ 发行版中包含的文件 LICENSE。 |
log4j-docker
Log4j Docker 支持 需要 Jackson 注释、核心和 databind。有关所需的 JAR 文件的完整列表,请参阅 依赖项树。
log4j-jcl
Commons Logging 桥接 需要 Commons Logging。有关所需的 JAR 文件的完整列表,请参阅 依赖项树。
log4j-1.2-api
Log4j 1.2 桥接 没有外部依赖项。这只需要 Log4j API。包含 Log4j Core 提供可选的额外功能。
log4j-slf4j-impl
Log4j 2 SLF4J 绑定 依赖于 SLF4J API。有关所需的 JAR 文件的完整列表,请参阅 依赖项树。
不要与 log4j-to-slf4j 模块一起使用。
log4j-jul
Log4j 2 Java Util Logging 适配器 没有外部依赖项。它可以选择依赖于 Log4j Core 库。唯一必需的模块是 Log4j API。
log4j-to-slf4j
Log4j 2 到 SLF4J 适配器 需要 SLF4J API 和 SLF4J 实现。有关所需的 JAR 文件的完整列表,请参阅 依赖项树。
不要与 log4j-slf4j-impl 模块一起使用。
log4j-flume-ng
The Flume Appender requires Apache Flume and Apache Avro. The persistent agent uses Berkeley DB. See the Dependency Tree for the exact list of JAR files needed.
log4j-spring-cloud-config-client
Log4j Spring Cloud Config Client requires Spring Cloud Config. Spring Cloud Bus is required if notification of logging configuration changes is desired. Spring Boot is required but applications do not have to be packaged as a Spring Boot application. Dependency Tree for the exact list of JAR files needed.
log4j-taglib
The Log4j Log Tag Library requires the Jakarta Commons Log Taglib and the Servlet API. See the Dependency Tree for the exact list of JAR files needed.
log4j-web
The Log4j Web module requires the Servlet API. See the 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.
log4j-couchdb
The Log4J CouchDB module depends on the LightCouch CouchDB client library.
log4j-mongodb
The Log4J MongoDB module depends on the MongoDB Java Client driver.
log4j-cassandra
The Log4J Cassandra module depends on the Datastax Cassandra driver.
log4j-iostreams
The Log4j IO Streams module has no external dependencies. This only requires the Log4j API.
log4j-jakarta-smtp
The Log4j Simple Mail Transfer Protocol (SMTP) Appender, version for Jakarta EE 9 module has 2 external runtime dependencies for the jakarta.activation-api and jakarta.mail-api. 1. org.eclipse.angus:angus-activation 2. org.eclipse.angus:jakarta.mail
log4j-jakarta-web
The Log4j Jakarta-Web module for Jakarta EE 9+ web servlet containers requires the Servlet API and log4j-core
.