blob: 97e5810d91c432f79541027718136b920b778af4 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
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
http://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.
-->
<!-- Generated by Apache Maven Doxia at 2017-11-19 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Log4j &#x2013; Maven, Ivy, Gradle, and SBT Artifacts - Apache Log4j 2</title>
<link rel="stylesheet" href="./css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="./css/site.css" type="text/css" />
<script type="text/javascript" src="./js/jquery.min.js"></script>
<script type="text/javascript" src="./js/bootstrap.min.js"></script>
<script type="text/javascript" src="./js/prettify.min.js"></script>
<script type="text/javascript" src="./js/site.js"></script>
<meta name="Date-Revision-yyyymmdd" content="20171119" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<a href="https://logging.apache.org/">
<img class="logo-left" src="./images/ls-logo.jpg" alt="Apache logging services logo" />
</a>
<img class="logo-right" src="./images/logo.png" alt="Apache log4j logo" />
<div class="clear"></div>
<div class="navbar">
<div class="navbar-inner">
<div class="container-fluid">
<a class="brand" href="https://logging.apache.org/log4j/2.x/">Apache Log4j 2 &trade;</a>
<ul class="nav">
<li>
<a href="https://wiki.apache.org/logging" class="external" target="_blank" title="Logging Wiki">Logging Wiki</a>
</li>
<li>
<a href="https://www.apache.org/" class="external" target="_blank" title="Apache">Apache</a>
</li>
<li>
<a href="../../" title="Logging Services">Logging Services</a>
</li>
<li>
<a href="https://analysis.apache.org/dashboard/index/org.apache.logging.log4j:log4j" class="external" target="_blank" title="Sonar">Sonar</a>
</li>
<li>
<a href="https://github.com/apache/logging-log4j2" class="external" target="_blank" title="GitHub">GitHub</a>
</li>
</ul>
</div>
</div>
</div>
<div class="container-fluid">
<table class="layout-table">
<tr>
<td class="sidebar">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header"><i class="icon-home"></i>Apache Log4j™ 2</li>
<li class="none">
<a href="index.html" title="About">About</a>
</li>
<li class="none">
<a href="download.html" title="Download">Download</a>
</li>
<li class="collapsed">
<a href="javadoc.html" title="Javadoc">Javadoc</a>
</li>
<li class="none active">
<a href="maven-artifacts.html" title="Maven, Ivy, Gradle Artifacts">Maven, Ivy, Gradle Artifacts</a>
</li>
<li class="none">
<a href="runtime-dependencies.html" title="Runtime Dependencies">Runtime Dependencies</a>
</li>
<li class="none">
<a href="changelog.html" title="Changelog">Changelog</a>
</li>
<li class="none">
<a href="faq.html" title="FAQ">FAQ</a>
</li>
<li class="collapsed">
<a href="performance.html" title="Performance">Performance</a>
</li>
<li class="none">
<a href="articles.html" title="Articles and Tutorials">Articles and Tutorials</a>
</li>
<li class="none">
<a href="thanks.html" title="Thanks">Thanks</a>
</li>
</ul>
<ul class="nav nav-list">
<li class="nav-header"><i class="icon-pencil"></i>For Contributors</li>
<li class="none">
<a href="build.html" title="Building Log4j from Source">Building Log4j from Source</a>
</li>
<li class="none">
<a href="guidelines.html" title="Guidelines">Guidelines</a>
</li>
<li class="none">
<a href="javastyle.html" title="Style Guide">Style Guide</a>
</li>
</ul>
<ul class="nav nav-list">
<li class="nav-header"><i class="icon-book"></i>Manual</li>
<li class="none">
<a href="manual/index.html" title="Introduction">Introduction</a>
</li>
<li class="none">
<a href="manual/architecture.html" title="Architecture">Architecture</a>
</li>
<li class="none">
<a href="manual/migration.html" title="Log4j 1.x Migration">Log4j 1.x Migration</a>
</li>
<li class="collapsed">
<a href="manual/api.html" title="Java API">Java API</a>
</li>
<li class="none">
<a href="manual/scala-api.html" title="Scala API">Scala API</a>
</li>
<li class="collapsed">
<a href="manual/configuration.html" title="Configuration">Configuration</a>
</li>
<li class="collapsed">
<a href="manual/webapp.html" title="Web Applications and JSPs">Web Applications and JSPs</a>
</li>
<li class="collapsed">
<a href="manual/lookups.html" title="Lookups">Lookups</a>
</li>
<li class="collapsed">
<a href="manual/appenders.html" title="Appenders">Appenders</a>
</li>
<li class="collapsed">
<a href="manual/layouts.html" title="Layouts">Layouts</a>
</li>
<li class="collapsed">
<a href="manual/filters.html" title="Filters">Filters</a>
</li>
<li class="collapsed">
<a href="manual/async.html" title="Async Loggers">Async Loggers</a>
</li>
<li class="collapsed">
<a href="manual/garbagefree.html" title="Garbage-free Logging">Garbage-free Logging</a>
</li>
<li class="none">
<a href="manual/jmx.html" title="JMX">JMX</a>
</li>
<li class="none">
<a href="manual/logsep.html" title="Logging Separation">Logging Separation</a>
</li>
<li class="collapsed">
<a href="manual/extending.html" title="Extending Log4j">Extending Log4j</a>
</li>
<li class="collapsed">
<a href="manual/plugins.html" title="Plugins">Plugins</a>
</li>
<li class="collapsed">
<a href="manual/customconfig.html" title="Programmatic Log4j Configuration">Programmatic Log4j Configuration</a>
</li>
<li class="collapsed">
<a href="manual/customloglevels.html" title="Custom Log Levels">Custom Log Levels</a>
</li>
</ul>
<ul class="nav nav-list">
<li class="nav-header"><i class="icon-tags"></i>Related Projects</li>
<li class="none">
<a href="http://logging.apache.org/log4j/scala/index.html" class="external" target="_blank" title="Log4j-Scala">Log4j-Scala</a>
</li>
</ul>
<ul class="nav nav-list">
<li class="nav-header"><i class="icon-tags"></i>Legacy</li>
<li class="none">
<a href="http://logging.apache.org/log4j/1.2/" class="external" target="_blank" title="Log4j 1.2">Log4j 1.2</a>
</li>
<li class="none">
<a href="http://logging.apache.org/log4j/log4j-2.3/" class="external" target="_blank" title="Log4j 2.3">Log4j 2.3</a>
</li>
</ul>
<ul class="nav nav-list">
<li class="nav-header"><i class="icon-cog"></i>Components</li>
<li class="none">
<a href="log4j-api/index.html" title="API">API</a>
</li>
<li class="none">
<a href="log4j-core/index.html" title="Implementation">Implementation</a>
</li>
<li class="none">
<a href="log4j-jcl/index.html" title="Commons Logging Bridge">Commons Logging Bridge</a>
</li>
<li class="none">
<a href="log4j-1.2-api/index.html" title="Log4j 1.2 API">Log4j 1.2 API</a>
</li>
<li class="none">
<a href="log4j-slf4j-impl/index.html" title="SLF4J Binding">SLF4J Binding</a>
</li>
<li class="none">
<a href="log4j-jul/index.html" title="JUL Adapter">JUL Adapter</a>
</li>
<li class="none">
<a href="log4j-to-slf4j/index.html" title="Log4j 2 to SLF4J Adapter">Log4j 2 to SLF4J Adapter</a>
</li>
<li class="none">
<a href="log4j-flume-ng/index.html" title="Apache Flume Appender">Apache Flume Appender</a>
</li>
<li class="none">
<a href="log4j-taglib/index.html" title="Log4j Tag Library">Log4j Tag Library</a>
</li>
<li class="none">
<a href="log4j-jmx-gui/index.html" title="Log4j JMX GUI">Log4j JMX GUI</a>
</li>
<li class="none">
<a href="log4j-web/index.html" title="Log4j Web Application Support">Log4j Web Application Support</a>
</li>
<li class="none">
<a href="log4j-appserver/index.html" title="Log4j Application Server Integration">Log4j Application Server Integration</a>
</li>
<li class="none">
<a href="log4j-couchdb/index.html" title="Log4j CouchDB appender">Log4j CouchDB appender</a>
</li>
<li class="none">
<a href="log4j-mongodb/index.html" title="Log4j MongoDB appender">Log4j MongoDB appender</a>
</li>
<li class="none">
<a href="log4j-cassandra/index.html" title="Log4j Cassandra appender">Log4j Cassandra appender</a>
</li>
<li class="none">
<a href="log4j-iostreams/index.html" title="Log4j IO Streams">Log4j IO Streams</a>
</li>
<li class="none">
<a href="log4j-liquibase/index.html" title="Log4j Liquibase Binding">Log4j Liquibase Binding</a>
</li>
</ul>
<ul class="nav nav-list">
<li class="nav-header"><i class="icon-info-sign"></i>Project Information</li>
<li class="none">
<a href="dependencies.html" title="Dependencies">Dependencies</a>
</li>
<li class="none">
<a href="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a>
</li>
<li class="none">
<a href="dependency-management.html" title="Dependency Management">Dependency Management</a>
</li>
<li class="none">
<a href="team-list.html" title="Project Team">Project Team</a>
</li>
<li class="none">
<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
</li>
<li class="none">
<a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
</li>
<li class="none">
<a href="license.html" title="Project License">Project License</a>
</li>
<li class="none">
<a href="source-repository.html" title="Source Repository">Source Repository</a>
</li>
<li class="none">
<a href="project-summary.html" title="Project Summary">Project Summary</a>
</li>
</ul>
<ul class="nav nav-list">
<li class="nav-header"><i class="icon-cog"></i>Project Reports</li>
<li class="none">
<a href="changes-report.html" title="Changes Report">Changes Report</a>
</li>
<li class="none">
<a href="jira-report.html" title="JIRA Report">JIRA Report</a>
</li>
<li class="none">
<a href="surefire-report.html" title="Surefire Report">Surefire Report</a>
</li>
<li class="none">
<a href="rat-report.html" title="RAT Report">RAT Report</a>
</li>
</ul>
</div>
<div id="poweredBy">
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="poweredBy" alt="Built by Maven" src="./images/maven-feather.png" />
</a>
</div>
</td>
<td class="content">
<!-- vim: set syn=markdown : -->
<!-- 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
http://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. --><h1>Maven, Ivy, Gradle, and SBT Artifacts</h1>
<p>Log4j 2 is broken up in an API and an implementation (core), where the API provides the interface that applications should code to. Strictly speaking Log4j core is only needed at runtime and not at compile time.</p>
<p>However, below we list Log4j core as a compile time dependency to improve the startup time for <a href="manual/plugins.html">custom plugins</a> as it provides an annotation processor that generates a metadata file to cache plugin information as well as the necessary code to compile against to create custom plugins.</p>
<div class="section">
<h2><a name="Using_Log4j_in_your_Apache_Maven_build"></a>Using Log4j in your Apache Maven build</h2>
<p>To build with <a class="externalLink" href="https://maven.apache.org/">Apache Maven</a>, add the dependencies listed below to your <tt>pom.xml</tt> file.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-api&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-core&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div></div>
<div class="section">
<h2><a name="Using_Log4j_in_your_Apache_Ivy_build"></a>Using Log4j in your Apache Ivy build</h2>
<p>To build with <a class="externalLink" href="https://ant.apache.org/ivy/">Apache Ivy</a>, add the dependencies listed below to your <tt>ivy.xml</tt> file.</p>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-api&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-core&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div></div>
<div class="section">
<h2><a name="Using_Log4j_in_your_Gradle_build"></a>Using Log4j in your Gradle build</h2>
<p>To build with <a class="externalLink" href="https://gradle.org/">Gradle</a>, add the dependencies listed below to your <tt>build.gradle</tt> file.</p>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.10.0'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0'
}
</pre></div></div></div>
<div class="section">
<h2><a name="Using_Log4j_in_your_SBT_build"></a>Using Log4j in your SBT build</h2>
<p>To build with <a class="externalLink" href="http://www.scala-sbt.org/">SBT</a>, add the dependencies listed below to your <tt>build.sbt</tt> file.</p>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-api&quot; % &quot;2.10.0&quot;
libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-core&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h2><a name="Bill_of_Material"></a>Bill of Material</h2>
<p>To keep your Log4j module versions in sync with each other, a <abbr id="Bill of Material">BOM</abbr> pom.xml file is provided for your convenience. To use this with <a class="externalLink" href="https://maven.apache.org/">Maven</a>, add the dependency listed below to your <tt>pom.xml</tt> file. When you specify the version identifier in this section, you don&#x2019;t have to specify the version in your <tt>&lt;dependencies/&gt;</tt> section.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencyManagement&gt;
&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-bom&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;scope&gt;import&lt;/scope&gt;
&lt;type&gt;pom&lt;/type&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;/dependencyManagement&gt;
</pre></div></div>
<p>To use this with Gradle, an additional <a class="externalLink" href="https://github.com/spring-gradle-plugins/dependency-management-plugin">Gradle plugin</a> is required for dependency management functionality.</p>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>plugins {
id 'io.spring.dependency-management' version '1.0.1.RELEASE'
}
dependencyManagement {
imports {
mavenBom 'org.apache.logging.log4j:log4j-bom:2.10.0'
}
}
dependencies {
compile 'org.apache.logging.log4j:log4j-api'
compile 'org.apache.logging.log4j:log4j-core'
// etc.
}
</pre></div></div></div>
<div class="section">
<h2><a name="Optional_Components"></a>Optional Components</h2>
<p>Log4j 2.x contains several optional components that can be included in an application.</p>
<div class="section">
<h3><a name="Log4j_1.x_API_Bridge"></a>Log4j 1.x API Bridge</h3>
<p>If existing components use Log4j 1.x and you want to have this logging routed to Log4j 2, then remove any log4j 1.x dependencies and add the following.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-1.2-api&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-1.2-api&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-1.2-api&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="Apache_Commons_Logging_Bridge"></a>Apache Commons Logging Bridge</h3>
<p>If existing components use Apache Commons Logging 1.x and you want to have this logging routed to Log4j 2, then add the following but do not remove any Commons Logging 1.x dependencies.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-jcl&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-jcl&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-jcl&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="SLF4J_Bridge"></a>SLF4J Bridge</h3>
<p>If existing components use SLF4J and you want to have this logging routed to Log4j 2, then add the following but do not remove any SLF4J dependencies.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-slf4j-impl&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-slf4j-impl&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-slf4j-impl&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="JUL_Adapter"></a>JUL Adapter</h3>
<p>If existing components use Java Util Logging and you want to have this logging routed to Log4j 2, then add the following.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-jul&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-jul&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-jul', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-jul&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="Web_Servlet_Support"></a>Web Servlet Support</h3>
<p>In order to properly support and handle the ClassLoader environment and container lifecycle of a web application, an additional module is required. This module is only required at runtime. In addition, if you&#x2019;re using servlets in an OSGi environment, make sure your preferred version of the servlet API is already available (e.g., if you want to use 3.0, but you&#x2019;ve also got 2.5 loaded, make sure both are loaded).</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-web&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-web&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-web', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-web&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="Tag_Library"></a>Tag Library</h3>
<p>The Log4j Log Tag Library creates the capability of inserting log statements in JSPs without the use of Java scripting. It uses the standard Log4j 2 API to log messages according to your Log4j configuration.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-taglib&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-taglib&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-taglib', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-taglib&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="Apache_Flume_Appender"></a>Apache Flume Appender</h3>
<p>The Flume Appender allows applications to send events to Flume Agents.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-flume-ng&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-flume-ng&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-flume-ng', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-flume-ng&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="Log4j_to_SLF4J_Adapter"></a>Log4j to SLF4J Adapter</h3>
<p>The Log4j 2 to SLF4J Adapter allows applications coded to the Log4j 2 API to be routed to SLF4J. Use of this adapter may cause some loss of performance as the Log4j 2 Messages must be formatted before they can be passed to SLF4J. The SLF4J Bridge must NOT be on the class path when this is in use.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-to-slf4j&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-to-slf4j&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-to-slf4j', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-to-slf4j&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="CouchDB"></a>CouchDB</h3>
<p>If your configuration uses the NoSQL CouchDB appender, then add the following.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-couchdb&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-couchdb&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-couchdb', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-couchdb&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="MongoDB"></a>MongoDB</h3>
<p>If your configuration uses the NoSQL MongoDB appender, then add the following.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-mongodb&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-mongodb&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-mongodb', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-mongodb&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="Cassandra"></a>Cassandra</h3>
<p>If your configuration uses the Cassandra appender, then add the following.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-cassandra&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-cassandra&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-cassandra', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-cassandra&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="IO_Streams"></a>IO Streams</h3>
<p>Log4j IO Streams allow applications to have data that is written to an OutputStream or a Writer be redirected to a Logger, or have data that is read from an InputStream or a Reader be wiretapped by a Logger. To use IO Streams, add the following.</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-iostreams&lt;/artifactId&gt;
&lt;version&gt;2.10.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-iostreams&quot; rev=&quot;2.10.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-iostreams', version: '2.10.0'
}
</pre></div></div>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; % &quot;log4j-iostreams&quot; % &quot;2.10.0&quot;
</pre></div></div></div>
<div class="section">
<h3><a name="Scala_API"></a>Scala API</h3>
<p>A convenient Scala wrapper for the Logger API. SBT users can add the following to their <tt>build.sbt</tt>:</p>
<p><tt>build.sbt</tt></p>
<div class="source">
<div class="source">
<pre>libraryDependencies += &quot;org.apache.logging.log4j&quot; %% &quot;log4j-api-scala&quot; % &quot;11.0&quot;
</pre></div></div>
<p>Maven, Ivy, and Gradle users need to add the Scala version to the artifact name.</p>
<p>Scala 2.12 users can use the following:</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-api-scala_2.12&lt;/artifactId&gt;
&lt;version&gt;11.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-api-scala_2.12&quot; rev=&quot;11.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-api-scala_2.12', version: '11.0'
}
</pre></div></div>
<p>Scala 2.11 users can use the following:</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-api-scala_2.11&lt;/artifactId&gt;
&lt;version&gt;11.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-api-scala_2.11&quot; rev=&quot;11.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-api-scala_2.11', version: '11.0'
}
</pre></div></div>
<p>Scala 2.10 users can use the following:</p>
<p><tt>pom.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&lt;artifactId&gt;log4j-api-scala_2.10&lt;/artifactId&gt;
&lt;version&gt;11.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>ivy.xml</tt></p>
<div class="source">
<div class="source">
<pre>&lt;dependencies&gt;
&lt;dependency org=&quot;org.apache.logging.log4j&quot; name=&quot;log4j-api-scala_2.10&quot; rev=&quot;11.0&quot; /&gt;
&lt;/dependencies&gt;
</pre></div></div>
<p><tt>build.gradle</tt></p>
<div class="source">
<div class="source">
<pre>dependencies {
compile group: 'org.apache.logging.log4j', name: 'log4j-api-scala_2.10', version: '11.0'
}
</pre></div></div></div></div>
<div class="section">
<h2><a name="Snapshot_builds"></a>Snapshot builds</h2>
<p>You can access the latest development snapshot by using the Maven repository <tt>https://repository.apache.org/snapshots</tt> and the current SNAPSHOT version. Generally, the master branch will use the next patch version as its snapshot version regardless of what the next actual version of Log4j will be. For example, if the latest release were <tt>2.0</tt>, then master would be using the version <tt>2.0.1-SNAPSHOT</tt>. Always verify with <tt>pom.xml</tt> in the master branch as described in the <a href="source-repository.html">source repository page</a>.</p>
<div class="section">
<h3><a name="Maven"></a>Maven</h3>
<p>Maven users can add the following to their <tt>pom.xml</tt> to enable snapshots:</p>
<div class="source">
<div class="source">
<pre>&lt;repositories&gt;
&lt;repository&gt;
&lt;id&gt;apache.snapshots&lt;/id&gt;
&lt;name&gt;Apache Snapshot Repository&lt;/name&gt;
&lt;url&gt;https://repository.apache.org/snapshots&lt;/url&gt;
&lt;releases&gt;
&lt;enabled&gt;false&lt;/enabled&gt;
&lt;/releases&gt;
&lt;/repository&gt;
&lt;/repositories&gt;
</pre></div></div></div>
<div class="section">
<h3><a name="Gradle"></a>Gradle</h3>
<p>Gradle users can add the following to their <tt>build.gradle</tt> to enable snapshots:</p>
<div class="source">
<div class="source">
<pre>repositories {
mavenCentral()
maven { url 'https://repository.apache.org/snapshots' }
}
</pre></div></div></div>
<div class="section">
<h3><a name="SBT"></a>SBT</h3>
<p>SBT users can add the following to their <tt>build.sbt</tt> to enable snapshots:</p>
<div class="source">
<div class="source">
<pre>resolvers += &quot;Apache Snapshot Repository&quot; at &quot;https://repository.apache.org/snapshots&quot;
</pre></div></div></div></div>
</td>
</tr>
</table>
</div>
<div class="footer">
<p>Copyright &copy; 1999-2017 <a class="external" href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p>
<p>Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation.</p>
<p>Site powered by <a class="external" href="http://getbootstrap.com/">Twitter Bootstrap</a>. Icons from <a class="external" href="http://glyphicons.com/">Glyphicons Free</a>.</p>
</div>
</div>
</body>
</html>