| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| 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. |
| --> |
| <document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> |
| |
| <properties> |
| <title>Building and Using Log4J</title> |
| </properties> |
| |
| <body> |
| <section name="Building and Using Log4j"> |
| |
| <subsection name="Building Log4J"> |
| <p> |
| Log4j 2.x is hosted in the Apache Software Foundation's subversion repository. Details on obtaining the |
| most current source code can be found at |
| <a href="./source-repository.html">Log4j Source Repository</a>. The source from the latest release may be |
| obtained by downloading it using the instructions at <a href="./download.html">Log4j Downloads</a>. |
| </p> |
| <p> |
| Log4j 2.x uses Maven 2 or 3 as its build tool. To build and install Log4j in your local Maven cache, from |
| the root directory run: |
| </p> |
| <p> |
| <pre>mvn install</pre> |
| </p> |
| <p> |
| Then to build the full site, you must use a local staging directory: |
| </p> |
| <p> |
| <pre>mvn site |
| [Windows] mvn site:stage-deploy -DstagingSiteURL=file:///%HOME%/log4j |
| [Unix] mvn site:stage-deploy -DstagingSiteURL=file:///$HOME/log4j</pre> |
| </p> |
| <p> |
| To rebuild only what's changed and execute the tests, run: |
| </p> |
| <p> |
| <pre>mvn test</pre> |
| </p> |
| <p> |
| To rebuild from scratch, add "clean", for example: |
| </p> |
| <p> |
| <pre>mvn clean test</pre> |
| </p> |
| </subsection> |
| <subsection name="Using Log4J on your classpath"> |
| <p> |
| To use Log4j 2 in your application make sure that both the API and Core jars are in the application's |
| classpath. Add the dependencies listed below to your classpath. |
| </p> |
| <ul> |
| <li><code>log4j-api-${Log4jReleaseVersion}.jar</code></li> |
| <li><code>log4j-core-${Log4jReleaseVersion}.jar</code></li> |
| </ul> |
| <p> |
| You can do this from the command line or a manifest file. |
| </p> |
| </subsection> |
| <subsection name="Using Log4J in your Apache Maven build"> |
| <p> |
| To build with <a href="http://maven.apache.org/">Apache Maven</a>, add the dependencies listed below to your |
| <code>pom.xml</code> file. |
| </p> |
| <pre class="prettyprint linenums"><![CDATA[ |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-api</artifactId> |
| <version>${Log4jReleaseVersion}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-core</artifactId> |
| <version>${Log4jReleaseVersion}</version> |
| </dependency> |
| </dependencies> |
| ]]></pre> |
| </subsection> |
| <subsection name="Using Log4J in your Apache Ivy build"> |
| <p> |
| To build with <a href="https://ant.apache.org/ivy/">Apache Ivy</a>, add the dependencies listed below to your |
| <code>ivy.xml</code> file. |
| </p> |
| <pre class="prettyprint linenums"><![CDATA[ |
| <dependencies> |
| <dependency org="org.apache.logging.log4j" name="log4j-api" rev="${Log4jReleaseVersion}" /> |
| <dependency org="org.apache.logging.log4j" name="log4j-core" rev="${Log4jReleaseVersion}" /> |
| </dependencies> |
| ]]></pre> |
| </subsection> |
| <subsection name="Optional Components"> |
| <p> |
| Log4j 2.x contains several optional components that can be included in an application. |
| </p> |
| <h4>Log4j 1.x</h4> |
| <p>If there are existing components that are written to use Log4j 1.x and it is desired to have this |
| logging routed to Log4j 2 then remove any log4j 1.x dependencies and add the following. |
| </p> |
| <pre class="prettyprint linenums"><![CDATA[ |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-1.2-api</artifactId> |
| <version>${Log4jReleaseVersion}</version> |
| </dependency> |
| </dependecies> |
| ]]></pre> |
| <h4>Apache Commons Logging</h4> |
| <p>Commons Logging is used in many components as a way of letting applications choose the specific |
| logging implementation. To route logging from those components into Log4j 2 include the |
| following dependency and do not remove the Commons Logging jar. |
| </p> |
| <pre class="prettyprint linenums"><![CDATA[ |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jcl</artifactId> |
| <version>${Log4jReleaseVersion}</version> |
| </dependency> |
| </dependencies> |
| ]]></pre> |
| <h4>SLF4J</h4> |
| <p>SLF4J is another popular logging API that may be bound to Log4j 2 by including the following |
| dependency along with the SLF4J dependencies. |
| </p> |
| <pre class="prettyprint linenums"><![CDATA[ |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-slf4j-impl</artifactId> |
| <version>${Log4jReleaseVersion}</version> |
| </dependency> |
| </dependencies> |
| ]]></pre> |
| <h4>Tag Library</h4> |
| <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> |
| <pre class="prettyprint linenums"><![CDATA[ |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-taglib</artifactId> |
| <version>${Log4jReleaseVersion}</version> |
| </dependency> |
| </dependencies> |
| ]]></pre> |
| </subsection> |
| </section> |
| </body> |
| </document> |