blob: 82680d427df8568572c9521b168c69993d2c617a [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
| Generated by Apache Maven Doxia at Jun 9, 2012
| Rendered using Apache Maven Fluido Skin
-->
<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" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>
Log4J2 Guide</title>
<link rel="stylesheet" href="./css/apache-maven-fluido.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script type="text/javascript" src="./js/apache-maven-fluido.min.js"></script>
<meta name="author" content="Ralph Goers" />
<meta name="Date-Revision-yyyymmdd" content="20120609" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<div id="banner">
<div class="pull-left">
<a href="../../" id="bannerLeft">
<img src="images/ls-logo.jpg" alt="Apache Logging Services™"/>
</a>
</div>
<div class="pull-right"> <div id="bannerRight">
<img src="images/logo.jpg" />
</div>
</div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2012-06-09</li>
<li class="divider">|</li> <li id="projectVersion">Version: 2.0-alpha1-SNAPSHOT</li>
<li class="pull-right"> <a href="http://wiki.apache.org/logging" class="externalLink" title="Logging Wiki">Logging Wiki</a>
</li>
<li class="divider pull-right">|</li>
<li class="pull-right"> <a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a>
</li>
<li class="divider pull-right">|</li>
<li class="pull-right"> <a href="../../" title="Logging Services">Logging Services</a>
</li>
<li class="divider pull-right">|</li>
<li class="pull-right"> <a href="../" title="Log4j">Log4j</a>
</li>
<li class="divider pull-right">|</li>
<li class="pull-right"> <a href="../companions" title="Log4j Companions">Log4j Companions</a>
</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span3">
<div class="well sidebar-nav">
<h3>Apache Log4j™ 2</h3>
<ul>
<li class="none">
<strong>About</strong>
</li>
<li class="none">
<a href="download.html" title="Download">Download</a>
</li>
<li class="none">
<a href="build.html" title="Build and Install">Build and Install</a>
</li>
<li class="none">
<a href="changelog.html" title="Changelog">Changelog</a>
</li>
</ul>
<h3>Manual</h3>
<ul>
<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="collapsed">
<a href="manual/api.html" title="API">API</a>
</li>
<li class="collapsed">
<a href="manual/configuration.html" title="Configuration">Configuration</a>
</li>
<li class="collapsed">
<a href="manual/plugins.html" title="Plugins">Plugins</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="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>
</ul>
<h3>Logging Adapters</h3>
<ul>
<li class="none">
<a href="log4j12-api/api.html" title="Log4j 1.x API">Log4j 1.x API</a>
</li>
<li class="none">
<a href="log4j2-jcl/api.html" title="Commons Logging">Commons Logging</a>
</li>
<li class="none">
<a href="slf4j-impl/api.html" title="SLF4J">SLF4J</a>
</li>
</ul>
<h3>Components</h3>
<ul>
<li class="none">
<a href="log4j-api/index.html" title="API">API</a>
</li>
<li class="none">
<a href="log4j-core/index.html" title="Impl">Impl</a>
</li>
<li class="none">
<a href="log4j12-api/index.html" title="Log4J 1.2 API">Log4J 1.2 API</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="slf4j-impl/index.html" title="SLF4J Binding">SLF4J Binding</a>
</li>
<li class="none">
<a href="log4j-flume-og/index.html" title="Flume OG">Flume OG</a>
</li>
<li class="none">
<a href="log4j-flume-ng/index.html" title="Flume NG">Flume NG</a>
</li>
</ul>
<h3>Project Documentation</h3>
<ul>
<li class="expanded">
<a href="project-info.html" title="Project Information">Project Information</a>
<ul>
<li class="none">
<a href="distribution-management.html" title="Distribution Management">Distribution Management</a>
</li>
<li class="none">
<strong>About</strong>
</li>
<li class="none">
<a href="dependencies.html" title="Dependencies">Dependencies</a>
</li>
<li class="none">
<a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
</li>
<li class="none">
<a href="plugins.html" title="Project Plugins">Project Plugins</a>
</li>
<li class="none">
<a href="integration.html" title="Continuous Integration">Continuous Integration</a>
</li>
<li class="none">
<a href="license.html" title="Project License">Project License</a>
</li>
<li class="none">
<a href="dependency-management.html" title="Dependency Management">Dependency Management</a>
</li>
<li class="none">
<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
</li>
<li class="none">
<a href="team-list.html" title="Project Team">Project Team</a>
</li>
<li class="none">
<a href="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a>
</li>
<li class="none">
<a href="source-repository.html" title="Source Repository">Source Repository</a>
</li>
<li class="none">
<a href="plugin-management.html" title="Plugin Management">Plugin Management</a>
</li>
<li class="none">
<a href="modules.html" title="Project Modules">Project Modules</a>
</li>
<li class="none">
<a href="project-summary.html" title="Project Summary">Project Summary</a>
</li>
</ul>
</li>
<li class="collapsed">
<a href="project-reports.html" title="Project Reports">Project Reports</a>
</li>
</ul>
<hr class="divider" />
<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="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
</div>
<div id="bodyColumn" class="span9" >
<!-- 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. -->
<div class="section"><h2>About Log4j 2<a name="About_Log4j_2"></a></h2>
<p>
Log4j 2 is an upgrade to Log4j that provides significant improvements over its predecessor, Log4j
1.x, and provides many of the improvements available in Logback while fixing some inherent problems in
Logback's architecture.
</p>
<p>Some of the features and improvements in Log4j 2 are:</p>
<div class="section"><h3>API Separation<a name="API_Separation"></a></h3>
<p>
The API for Log4j is separate from the implementation. It is now clear to application developers
what classes and methods they can use with compatibility being assured while allowing
improvements to be made to the implementation.
</p>
</div><div class="section"><h3>Improved Performance<a name="Improved_Performance"></a></h3>
<p>
Faster performance than Log4j 1.x in critical areas and similar performance to Logback in
most circumstances. See <a href="performance.html">Performance</a> for more information.
</p>
</div><div class="section"><h3>Support for multiple APIs<a name="Support_for_multiple_APIs"></a></h3>
<p>
While the Log4j 2 API will provide the best performance, support for the SL4J and Commons Logging
APIs are provided.
</p>
</div><div class="section"><h3>Automatic Reloading of Configurations<a name="Automatic_Reloading_of_Configurations"></a></h3>
<p>
Like Logback, Log4j 2 can automatically reload its configuration upon modification. Unlike Logback,
it will do so without losing log events while reconfiguration is taking place.
</p>
</div><div class="section"><h3>Advanced Filtering<a name="Advanced_Filtering"></a></h3>
<p>
Like Logback, Log4j 2 supports filtering based on context data, markers, regular expressions and
other components in the Log event and can be specified to apply to all events before being passed
to Loggers or as they pass through appenders. In addition, filters can also be associated with
Loggers. Unlike Logback, a common Filter class can be used in any of these circumstances.
</p>
</div><div class="section"><h3>Plugin Architecture<a name="Plugin_Architecture"></a></h3>
<p>
All configurable components are defined as Log4j plugins. As such, no Log4j code must be changed to
create a new Appender, Layout, Pattern Converter, etc. Log4j will automatically
recognize properly defined plugins and use them when they are referenced in the configuration.
</p>
</div><div class="section"><h3>Property Support<a name="Property_Support"></a></h3>
<p>
Properties can be referenced in the configuration and either be directly replace or passed to the
underlying component where they can be dynamically resolved. Properties can come from values
defined in the configuration file, system properties, environment variables, the ThreadContext
Map, and data present in the event. Users can further customize the property providers by
adding their own <a href="../lookups.html">Lookup</a> Plugin.
</p>
</div></div>
<div class="section"><h2>Requirements<a name="Requirements"></a></h2>
<p>
Log4j 2 requires Java 5 but has will take advantage of enhancements in Java 6 to improve performance.
Some features may require optional dependencies. These dependencies are
specified in the documentation for those features.
</p>
</div>
<div class="section"><h2>News<a name="News"></a></h2>
<p>
Log4j 2 is now available for testing. The API for Log4j 2 is not compatible with Log4j 1.x, however an adapter
is available to allow applications to continue to use the Log4j 1.x API. Adapters are also available for
Commons Logging and SLF4J.
</p>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row span16">Copyright &copy; 1999-2012
<a href="http://www.apache.org">Apache Software Foundation</a>.
All Rights Reserved.
</div>
</div>
</footer>
</body>
</html>