blob: f3b5989a360319930a604993166e2135a29d0692 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 from target/generated-sources/site/asciidoc/runtime-dependencies.adoc at 2024-02-17
| Rendered using Apache Maven Fluido Skin 1.8
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
<title>Log4j &#x2013; </title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.8.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script src="./js/apache-maven-fluido-1.8.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<header>
<div id="banner">
<div class="pull-left"><a href="http://logging.apache.org" id="bannerLeft"><img src="images/ls-logo.jpg" alt=""/></a></div>
<div class="pull-right"><a href="http://logging.apache.org/log4j/3.x" id="bannerRight"><img src="images/logo.png" alt=""/></a></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2024-02-17<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 3.0.0-beta2</li>
<li class="pull-right"><span class="divider">|</span>
<a href="https://github.com/apache/logging-log4j2" class="externalLink" title="GitHub">GitHub</a></li>
<li class="pull-right"><span class="divider">|</span>
<a href="https://analysis.apache.org/dashboard/index/org.apache.logging.log4j:log4j" class="externalLink" title="Sonar">Sonar</a></li>
<li class="pull-right"><span class="divider">|</span>
<a href="../../" title="Logging Services">Logging Services</a></li>
<li class="pull-right"><span class="divider">|</span>
<a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a></li>
<li class="pull-right"><a href="https://cwiki.apache.org/confluence/display/LOGGING/Log4j" class="externalLink" title="Logging Wiki">Logging Wiki</a></li>
</ul>
</div>
</header>
<div class="row-fluid">
<header id="leftColumn" class="span2">
<nav class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header"><img class="imageLink" src="img/glyphicons/home.png" alt="Apache Log4j™ 3.x" border="0"/> Apache Log4j™ 3.x</li>
<li><a href="index.html" title="About"><span class="none"></span>About</a></li>
<li><a href="download.html" title="Download"><span class="none"></span>Download</a></li>
<li><a href="javadoc.html" title="Javadoc"><span class="none"></span>Javadoc</a></li>
<li><a href="maven-artifacts.html" title="Maven, Ivy, Gradle Artifacts"><span class="icon-chevron-right"></span>Maven, Ivy, Gradle Artifacts</a></li>
<li class="active"><a href="#"><span class="none"></span>Runtime Dependencies</a></li>
<li><a href="release-notes.html" title="Release Notes"><span class="none"></span>Release Notes</a></li>
<li><a href="faq.html" title="FAQ"><span class="none"></span>FAQ</a></li>
<li><a href="performance.html" title="Performance"><span class="icon-chevron-right"></span>Performance</a></li>
<li><a href="articles.html" title="Articles and Tutorials"><span class="none"></span>Articles and Tutorials</a></li>
<li><a href="security.html" title="Security"><span class="none"></span>Security</a></li>
<li><a href="support.html" title="Support"><span class="none"></span>Support</a></li>
<li><a href="thanks.html" title="Thanks"><span class="none"></span>Thanks</a></li>
<li class="nav-header"><img class="imageLink" src="img/glyphicons/pencil.png" alt="For Contributors" border="0"/> For Contributors</li>
<li><a href="guidelines.html" title="Guidelines"><span class="none"></span>Guidelines</a></li>
<li><a href="javastyle.html" title="Style Guide"><span class="none"></span>Style Guide</a></li>
<li class="nav-header"><img class="imageLink" src="img/glyphicons/book.png" alt="Manual" border="0"/> Manual</li>
<li><a href="manual/index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
<li><a href="manual/architecture.html" title="Architecture"><span class="none"></span>Architecture</a></li>
<li><a href="manual/compatibility.html" title="Log4j 1.x Compatibility"><span class="none"></span>Log4j 1.x Compatibility</a></li>
<li><a href="manual/migration.html" title="Log4j 1.x Migration"><span class="none"></span>Log4j 1.x Migration</a></li>
<li><a href="manual/api.html" title="Java API"><span class="icon-chevron-right"></span>Java API</a></li>
<li><a href="manual/scala-api.html" title="Scala API"><span class="none"></span>Scala API</a></li>
<li><a href="manual/configuration.html" title="Configuration"><span class="icon-chevron-right"></span>Configuration</a></li>
<li><a href="manual/usage.html" title="Usage"><span class="icon-chevron-right"></span>Usage</a></li>
<li><a href="manual/lookups.html" title="Lookups"><span class="icon-chevron-right"></span>Lookups</a></li>
<li><a href="manual/appenders.html" title="Appenders"><span class="icon-chevron-right"></span>Appenders</a></li>
<li><a href="manual/layouts.html" title="Layouts"><span class="icon-chevron-right"></span>Layouts</a></li>
<li><a href="manual/filters.html" title="Filters"><span class="icon-chevron-right"></span>Filters</a></li>
<li><a href="manual/async.html" title="Async Loggers"><span class="icon-chevron-right"></span>Async Loggers</a></li>
<li><a href="manual/garbagefree.html" title="Garbage-free Logging"><span class="icon-chevron-right"></span>Garbage-free Logging</a></li>
<li><a href="manual/jmx.html" title="JMX"><span class="none"></span>JMX</a></li>
<li><a href="manual/logsep.html" title="Logging Separation"><span class="none"></span>Logging Separation</a></li>
<li><a href="manual/extending.html" title="Extending Log4j"><span class="icon-chevron-right"></span>Extending Log4j</a></li>
<li><a href="manual/plugins.html" title="Plugins"><span class="icon-chevron-right"></span>Plugins</a></li>
<li><a href="manual/customconfig.html" title="Programmatic Log4j Configuration"><span class="icon-chevron-right"></span>Programmatic Log4j Configuration</a></li>
<li><a href="manual/customloglevels.html" title="Custom Log Levels"><span class="icon-chevron-right"></span>Custom Log Levels</a></li>
<li class="nav-header"><img class="imageLink" src="img/glyphicons/tag.png" alt="Related Projects" border="0"/> Related Projects</li>
<li><a href="http://logging.apache.org/log4j/scala/index.html" class="externalLink" title="Log4j-Scala"><span class="none"></span>Log4j-Scala</a></li>
<li class="nav-header"><img class="imageLink" src="img/glyphicons/link.png" alt="Older Releases" border="0"/> Older Releases</li>
<li><a href="http://logging.apache.org/log4j/1.2/" class="externalLink" title="Log4j 1.2 - End of Life"><span class="none"></span>Log4j 1.2 - End of Life</a></li>
<li><a href="http://logging.apache.org/log4j/log4j-2.3/" class="externalLink" title="Log4j 2.3 - Java 6"><span class="none"></span>Log4j 2.3 - Java 6</a></li>
<li><a href="http://logging.apache.org/log4j/log4j-2.12.1/" class="externalLink" title="Log4j 2.12.1 - Java 7"><span class="none"></span>Log4j 2.12.1 - Java 7</a></li>
<li><a href="http://logging.apache.org/log4j/2.x/" class="externalLink" title="Log4j 2.x - Latest release for Java 8"><span class="none"></span>Log4j 2.x - Latest release for Java 8</a></li>
<li class="nav-header"><img class="imageLink" src="img/glyphicons/layers.png" alt="Internal Components" border="0"/> Internal Components</li>
<li><a href="log4j-api.html" title="API"><span class="none"></span>API</a></li>
<li><a href="log4j-core.html" title="Implementation"><span class="none"></span>Implementation</a></li>
<li><a href="log4j-1.2-api.html" title="Log4j 1.2 API"><span class="none"></span>Log4j 1.2 API</a></li>
<li><a href="log4j-slf4j-impl.html" title="SLF4J Binding"><span class="none"></span>SLF4J Binding</a></li>
<li><a href="log4j-jul.html" title="JUL Adapter"><span class="none"></span>JUL Adapter</a></li>
<li><a href="log4j-jpl.html" title="JDK Platform Logger"><span class="none"></span>JDK Platform Logger</a></li>
<li><a href="log4j-to-slf4j.html" title="Log4j 2 to SLF4J Adapter"><span class="none"></span>Log4j 2 to SLF4J Adapter</a></li>
<li><a href="log4j-jdbc-dbcp2.html" title="JDBC Appender"><span class="none"></span>JDBC Appender</a></li>
<li><a href="log4j-flume-ng.html" title="Apache Flume Appender"><span class="none"></span>Apache Flume Appender</a></li>
<li><a href="log4j-mongodb4.html" title="MongoDB 4 appender"><span class="none"></span>MongoDB 4 appender</a></li>
<li><a href="log4j-iostreams.html" title="IO Streams"><span class="none"></span>IO Streams</a></li>
<li><a href="log4j-docker.html" title="Docker Support"><span class="none"></span>Docker Support</a></li>
<li><a href="log4j-kubernetes.html" title="Kubernetes Support"><span class="none"></span>Kubernetes Support</a></li>
<li><a href="log4j-spring-cloud-config-client.html" title="Spring Cloud Config Client"><span class="none"></span>Spring Cloud Config Client</a></li>
<li><a href="log4j-transform" title="Log4j Transformation Tools"><span class="none"></span>Log4j Transformation Tools</a></li>
<li class="nav-header"><img class="imageLink" src="img/glyphicons/link.png" alt="External Components" border="0"/> External Components</li>
<li><a href="log4j/jakarta" title="Log4j Jakarta EE"><span class="none"></span>Log4j Jakarta EE</a></li>
<li><a href="log4j/jmx-gui" title="Log4j JMX GUI"><span class="none"></span>Log4j JMX GUI</a></li>
<li><a href="log4j/tools" title="Log4j Tools"><span class="none"></span>Log4j Tools</a></li>
<li><a href="log4j/transform" title="Log4j Transformation Tools"><span class="none"></span>Log4j Transformation Tools</a></li>
<li class="nav-header"><img class="imageLink" src="img/glyphicons/info.png" alt="Project Information" border="0"/> Project Information</li>
<li><a href="team.html" title="Project Team"><span class="none"></span>Project Team</a></li>
<li><a href="https://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="Project License"><span class="none"></span>Project License</a></li>
<li><a href="https://github.com/apache/logging-log4j2/tree/main" class="externalLink" title="Source Repository"><span class="none"></span>Source Repository</a></li>
<li class="nav-header"><img class="imageLink" src="img/glyphicons/layers.png" alt="Project Reports" border="0"/> Project Reports</li>
<li><a href="rat-report.html" title="RAT Report"><span class="none"></span>RAT Report</a></li>
</ul>
</nav>
<div class="well sidebar-nav">
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
</div>
</div>
</header>
<main id="bodyColumn" class="span10" >
<h1>Runtime Dependencies</h1>
<link rel="stylesheet" type="text/css" href="css/tables.css">
<div class="paragraph">
<p>Some Log4j features depend on external libraries. This page lists the
required and optional dependencies.</p>
</div>
<div class="paragraph">
<p>The Log4j API is a Java module (with a module-info.java). Many of the other jars are also JPMS modules. The
characteristics of the modules are:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 15%;"/>
<col style="width: 25%;"/>
<col style="width: 60%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Artifact Name</th>
<th class="tableblock halign-left valign-top">Module Name</th>
<th class="tableblock halign-left valign-top">Module Characteristics</th>
</tr>
</thead>
<tbody>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-api</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.message</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.simple</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.spi</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.status</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.util</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static java.sql</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static org.osgi.framework</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uses org.apache.logging.log4j.spi.Provider</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Service that must be provided by the logging implementation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uses PropertySource</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Service that must be provided by the logging implementation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uses org.apache.logging.log4j.message.ThreadDumpMessage.ThreadInfoFactory</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Service that must be provided by the logging implementation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides PropertySource with EnvironmentPropertySource, SystemPropertiesPropertySource</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-core</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.appender</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.appender.db</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.appender.nosql</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.appender.rewrite</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.appender.rolling</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.appender.rolling.action</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.appender.routing</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.async</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.arbiters</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.builder.api</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.builder.impl</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.composite</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.json</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.plugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.plugins.convert</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.plugins.util</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.plugins.visit</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.properties</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.status</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.xml</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.config.yaml</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.filter</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.impl</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.jmx</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.layout</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.lookup</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.message</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.net</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.net.ssl</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.osgi</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.parser</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.pattern</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.script</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.selector</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.time</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.tools</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.tools.picocli</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.util</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.core.util.datetime</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>// Required Dependencies</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires transitive org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires transitive org.apache.logging.log4j.plugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>// Optional Dependencies</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static java.desktop</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static java.management</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static java.sql</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static java.rmi</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static java.xml</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static com.lmax.disruptor</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static org.osgi.framework</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static com.conversantmedia.disruptor</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static com.fasterxml.jackson.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static com.fasterxml.jackson.databind</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static com.fasterxml.jackson.dataformat.xml</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static com.fasterxml.jackson.dataformat.yaml</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static org.apache.commons.compress</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static org.fusesource.jansi</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static jdk.unsupported</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uses ContextDataProvider</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uses WatchEventService</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uses ScriptManagerFactory</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides ThreadInfoFactory with ExtendedThreadInfoFactory</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides ContextDataProvider with ThreadContextDataProvider</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides Provider with Log4jProvider</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides PluginService with Log4jPlugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides InjectorCallback with DefaultCallback</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-1.2-api</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.log4j</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Automatic Module - It is unlikely any application using JPMS would use Log4j 1.x.</p>
</div></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-docker</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.docker</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Automatic Module</p>
</div></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-flume-ng</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.flume</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Automatic Module</p>
</div></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-iostreams</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.iostreams</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Automatic Module</p>
</div></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-jpl</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jpl</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.jpl to junit</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires transitive org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides java.lang.System.LoggerFinder with org.apache.logging.log4j.jpl.Log4jSystemLoggerFinder</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-jul</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.jul</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.jul</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>opens org.apache.logging.log4j.jul to org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires java.desktop</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires java.logging</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-layout-template-json</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.layout.template.json</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.layout.template.json</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.layout.template.json.resolver</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.layout.template.json.util</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>opens org.apache.logging.log4j.layout.template.json</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>opens org.apache.logging.log4j.layout.template.json.resolver</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>opens org.apache.logging.log4j.layout.template.json.util</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j.plugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-plugin-processor</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.plugin.processor</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugin.processor</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires java.compiler</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j.plugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires transitive org.osgi.framework</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides javax.annotation.processing.Processor with org.apache.logging.log4j.plugin.processor.PluginProcessor</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-plugins</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.plugins</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.condition</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.convert</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.di</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.model</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.name</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.util</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.validation</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.validation.constraints</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.validation.validators</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.plugins.visit</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires static org.osgi.framework</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uses PluginService</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uses InjectorCallback</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-script</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.script</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.script</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.script.appender</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>opens org.apache.logging.log4j.script.appender to org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.script.appender.rolling.action</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.script.config.arbiter</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>opens org.apache.logging.log4j.script.config.arbiter to org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.script.filter</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.script.layout</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>opens org.apache.logging.log4j.script.layout to org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.script.plugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j.core</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j.plugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires java.scripting</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides PluginService with Log4jPlugins</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides ScriptManagerFactory with ScriptManagerFactoryImpl</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-slf4j-impl</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.slf4j.impl</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Automatic Module. May require renaming should SLF4J ever require all implementations to have the same module name.</p>
</div></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-to-jul</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.tojul</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;"/>
<col style="width: 50%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Module Directive</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exports org.apache.logging.log4j.tojul to org.apache.logging.log4j, org.apache.logging.log4j.tojul.test</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires org.apache.logging.log4j</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>requires java.logging</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>provides org.apache.logging.log4j.spi.Provider with org.apache.logging.log4j.tojul.JULProvider</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">log4j-to-slf4j</p></th>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.logging.log4j.slf4j</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Automatic Module</p>
</div></div></td>
</tr>
</tbody>
</table>
<div class="dlist">
<dl>
<dt class="hdlist1">log4j-api<a id="log4j-api"></a></dt>
<dd>
<p>The Log4j <a href="log4j-api/index.html">API</a> module has no required external dependencies.</p>
</dd>
<dt class="hdlist1">log4j-core<a id="log4j-core"></a></dt>
<dd>
<p>The Log4j <a href="log4j-core/index.html">Implementation</a> has no required exterbak dependencies but 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>
</dd>
</dl>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 1. Optional Dependencies per Feature in Log4j Implementation</caption>
<colgroup>
<col style="width: 25%;"/>
<col style="width: 75%;"/>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Feature</th>
<th class="tableblock halign-left valign-top">Requirements</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">XML configuration</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Properties configuration</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">JSON configuration</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/FasterXML/jackson">Jackson core and databind</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">YAML configuration</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://github.com/FasterXML/jackson">Jackson databind</a> and <a href="https://github.com/FasterXML/jackson-dataformat-yaml">YAML data format</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CSV Layout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://commons.apache.org/proper/commons-csv/">Apache Commons CSV</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Async Loggers</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="http://lmax-exchange.github.io/disruptor/">LMAX Disruptor</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Windows console color support</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="http://jansi.fusesource.org/">Jansi</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">JDBC Appender</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">a JDBC driver for the database you choose to write events to</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">NoSQL Appender with MongoDB provider</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MongoDB Java Client driver and Log4j MongoDB library</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Bzip2, Deflate, Pack200, and XZ compression on rollover</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><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>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-1.2-api<a id="log4j-1.2-api"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The <a href="log4j-1.2-api/index.html">Log4j 1.2 Bridge</a> has no external
dependencies. This only requires the Log4j API. Including Log4j Core provides optional, extra functionality.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-api-scala<a id="log4j-api-scala"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The Log4j <a href="manual/scala-api.html">Scala API</a> requires Scala runtime
library and reflection in addition to the Log4j API.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-docker</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><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></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-flume-ng<a id="log4j-flume-ng"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-iostreams<a id="log4j-iostreams"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The Log4j <a href="log4j-iostreams/index.html">IO Streams</a> module has no
external dependencies. This only requires the Log4j API.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-jmx-gui<a id="log4j-jmx-gui"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-jul<a id="log4j-jul"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-mongodb4<a id="log4j-mongodb4"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The Log4j <a href="log4j-mongodb4/index.html">MongoDB</a> module depends on the
<a href="http://docs.mongodb.org/ecosystem/drivers/java/">MongoDB Java Client
driver</a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-slf4j-impl<a id="log4j-slf4j-impl"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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="tableblock">WARNING: Do not use this with the <a href="#log4j-to-slf4j">log4j-to-slf4j</a> module.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-spring-cloud-config-client<a id="log4j-spring-cloud-config-client"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="log4j-spring-cloud-config-client.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.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log4j-to-slf4j<a id="log4j-to-slf4j"></a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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="tableblock">WARNING: Do not use this with the <a href="#log4j-slf4j-impl">log4j-slf4j-impl</a> module.</p></td>
</tr>
</tbody>
</table>
</main>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p align="center">Copyright &copy; 1999-2024 <a class="external" href="http://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.<br>
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation.</p>
</div>
</div>
</footer>
</body>
</html>