Log4j 运行时依赖项

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

从 2.10.0 版开始,Log4j API 是 Java 模块(带有 module-info.java)。其他许多 jar 都是自动模块。这些模块的 Feature 是:

Artifact NameModule NameModule Characteristics
log4j-apiorg.apache.logging.log4j 模块指令注意事项

Exportorg.apache.logging.log4j
Exportorg.apache.logging.log4j.message
Exportorg.apache.logging.log4j.simple
Exportorg.apache.logging.log4j.spi
Exportorg.apache.logging.log4j.spi
Exportorg.apache.logging.log4j.util此包中的某些类由日志记录实现使用,应视为私有。将来可能会修改模块信息定义,以仅将其导出到日志记录实现中。
使用 org.apache.logging.log4j.spi.Provider日志记录实现必须提供的服务。
log4j-appserverorg.apache.logging.log4j.appserverAutomatic Module
log4j-cassandraorg.apache.logging.log4j.cassandraAutomatic Module
log4j-coreorg.apache.logging.log4j.coreAutomatic Module
log4j-couchdborg.apache.logging.log4j.couchdbAutomatic Module
log4j-dockerorg.apache.logging.log4j.dockerAutomatic Module
log4j-1.2-apiorg.apache.log4jAutomatic Module
log4j-flume-ngorg.apache.logging.log4j.flumeAutomatic Module
log4j-iostreamsorg.apache.logging.log4j.iostreamsAutomatic Module
log4j-jclorg.apache.logging.log4j.jclAutomatic Module
log4j-jmx-guiorg.apache.logging.log4j.jmx.guiAutomatic Module
log4j-julorg.apache.logging.log4j.julAutomatic Module
log4j-mongodborg.apache.logging.log4j.mongodbAutomatic Module
log4j-osgiorg.apache.logging.log4j.osgi自动模块。尚不清楚 OSGi 如何支持 Java 模块。
log4j-slf4j-implorg.apache.logging.log4j.slf4j.impl自动模块。如果 SLF4J 要求所有实现都具有相同的模块名称,则可能需要重命名。
log4j-tagliborg.apache.logging.log4j.taglibAutomatic Module
log4j-to-slf4jorg.apache.logging.log4j.slf4jAutomatic Module
log4j-weborg.apache.logging.log4j.webAutomatic Module

从 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 Implementation具有几个可选的dependencies。有关这些功能所需的 JAR 文件的确切列表,请参见Dependency Tree

  • Log4J 实现中每个功能的可选依赖项*
FeatureRequirements
XML configuration-
Properties configuration-
JSON configurationJackson 核心和数据绑定
YAML configurationJackson databindYAML 数据格式
CSV LayoutApache Commons CSV
JSON LayoutJackson 核心和数据绑定
XML LayoutJackson 核心,数据绑定和数据格式 XML

And com.fasterxml.woodstox:woodstox-core:5.0.2
YAML 布局Jackson 核心,数据绑定YAML 数据格式
Async LoggersLMAX Disruptor
Kafka AppenderKafkaClient 端库。请注意,您需要使用与所使用的 Kafka 服务器匹配的 KafkaClient 端库版本。
SMTP Appenderjavax.mail 的实现
JMS AppenderApache ActiveMQ这样的 JMS 代理
Windows 控制台颜色支持Jansi
JDBC Appender用于您选择向其中写入事件的数据库的 JDBC 驱动程序
JPA AppenderJava 持久性 API 类,JPA 提供程序实现和用户实现的修饰实体。它还需要适当的 JDBC 驱动程序。
带有 MongoDB 提供程序的 NoSQL AppenderMongoDB JavaClient 端驱动程序和 Log4j MongoDB 库
带有 Apache CouchDB 提供程序的 NoSQL AppenderLightCouch CouchDBClient 端库和 Log4j CouchDB 库
Cassandra AppenderDatastax Cassandra 驱动程序和 Log4j Cassandra 库
翻转时的 Bzip2,放气,Pack200 和 XZ 压缩Apache Commons Compress。另外,XZ 需要XZ for Java
ZeroMQ AppenderZeroMQ 附加程序使用JeroMQ库,该库已根据 Mozilla 公共许可证版本 2.0(MPLv2)的条款获得许可。有关详细信息,请参见 JeroMQ 发行版随附的文件LICENSE

log4j-docker

Log4j Docker 支持要求Jackson 注解,核心和数据绑定。有关所需的 JAR 文件的确切列表,请参见Dependency Tree

log4j-jcl

公用伐木 bridge要求Commons Logging。有关所需的 JAR 文件的确切列表,请参见Dependency Tree

log4j-1.2-api

Log4j 1.2bridge没有外部依赖项。这仅需要 Log4j API。包括 Log4j Core 在内,它提供了可选的附加功能。

log4j-slf4j-impl

Log4j 2 SLF4J Binding取决于SLF4J API。有关所需的 JAR 文件的确切列表,请参见Dependency Tree

请勿与log4j-to-slf4j模块一起使用.

log4j-jul

Log4j 2 Java Util 日志记录适配器没有外部依赖性。根据需要,它取决于Log4j Core库。唯一需要的模块是 Log4j API。

log4j-to-slf4j

Log4j 2 到 SLF4J 适配器需要SLF4J API 和 SLF4J 实现。有关所需的 JAR 文件的确切列表,请参见Dependency Tree

请勿与log4j-slf4j-impl模块一起使用.

log4j-flume-ng

Flume Appender要求Apache FlumeApache Avro。持久代理使用 Berkeley DB。有关所需的 JAR 文件的确切列表,请参见Dependency Tree

log4j-spring-cloud-config-client

Log4j Spring Cloud ConfigClient 端要求Spring Cloud Config。如果需要通知日志记录配置更改,则需要Spring Cloud 巴士Spring Boot是必需的,但应用程序不必打包为 Spring Boot 应用程序。 Dependency Tree以获得所需的 JAR 文件的确切列表。

log4j-taglib

Log4j 日志标签库需要雅加达公共日志标签库和 Servlet API。有关所需的 JAR 文件的确切列表,请参见Dependency Tree

log4j-jmx-gui

作为 JConsole 插件运行时,Log4j JMX GUI需要 JConsole jar。否则,它没有外部依赖性。有关所需的 JAR 文件的确切列表,请参见Dependency Tree

log4j-web

Log4j Web模块需要 Servlet API。有关所需的 JAR 文件的确切列表,请参见Dependency Tree。请注意,这可与 Servlet 2.5 API 和 Servlet 3.x API 一起使用。

log4j-couchdb

Log4J CouchDB模块取决于LightCouch CouchDBClient 端库。

log4j-mongodb

Log4J MongoDB模块取决于MongoDB JavaClient 端驱动程序

log4j-cassandra

Log4J Cassandra模块取决于Datastax Cassandra 驱动程序

log4j-iostreams

Log4j IO Streams模块没有外部依赖性。这仅需要 Log4j API。

log4j-api-scala

Log4j Scala API除了 Log4j API 外,还需要 Scala 运行时库和反射。