Log4j 运行时依赖项

某些 Log4J 功能依赖于外部库。此页面列出了必需和可选的依赖项。

从 2.10.0 版本开始,Log4j API 是一个命名的 Java 模块(带有 module-info.java)。从 2.21.0 版本开始,所有剩余的工件都是命名的模块。模块的特征是

工件名称 模块名称 模块特征
log4j-api org.apache.logging.log4j
模块指令 备注
exports org.apache.logging.log4j
exports org.apache.logging.log4j.message
exports org.apache.logging.log4j.simple
exports org.apache.logging.log4j.spi
exports org.apache.logging.log4j.spi
exports org.apache.logging.log4j.util 此包中的一些类由日志记录实现使用,应被视为私有。模块信息定义将来可能会修改,以仅将这些类导出到日志记录实现。
uses org.apache.logging.log4j.spi.Provider 日志记录实现必须提供的服务。
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 文件的完整列表,请参阅 依赖项树

Log4J 实现中每个功能的可选依赖项
功能 要求
XML 配置 -
属性配置 -
JSON 配置 Jackson core 和 databind
YAML 配置 Jackson databindYAML 数据格式
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、databindYAML 数据格式
异步记录器 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.