<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from src/site/xdoc/manual/migration.xml at 2019-12-11
 | 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.9.1" />
    <meta name="author" content="Ralph Goers" />
    <title>Log4j &#x2013; Migrating from Log4j 1.x</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/2.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: 2019-12-11<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.13.0</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™ 2" border="0"/> Apache Log4j™ 2</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="icon-chevron-right"></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><a href="../runtime-dependencies.html" title="Runtime Dependencies"><span class="none"></span>Runtime Dependencies</a></li>
    <li><a href="../changelog.html" title="Changelog"><span class="none"></span>Changelog</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="../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="../build.html" title="Building Log4j from Source"><span class="none"></span>Building Log4j from Source</a></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 class="active"><a href="#"><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/webapp.html" title="Web Applications and JSPs"><span class="icon-chevron-right"></span>Web Applications and JSPs</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="Legacy Sites" border="0"/> Legacy Sites</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 class="nav-header"><img class="imageLink" src="../img/glyphicons/cog.png" alt="Components" border="0"/> Components</li>
    <li><a href="../log4j-api/index.html" title="API"><span class="none"></span>API</a></li>
    <li><a href="../log4j-core/index.html" title="Implementation"><span class="none"></span>Implementation</a></li>
    <li><a href="../log4j-jcl/index.html" title="Commons Logging Bridge"><span class="none"></span>Commons Logging Bridge</a></li>
    <li><a href="../log4j-1.2-api/index.html" title="Log4j 1.2 API"><span class="none"></span>Log4j 1.2 API</a></li>
    <li><a href="../log4j-slf4j-impl/index.html" title="SLF4J Binding"><span class="none"></span>SLF4J Binding</a></li>
    <li><a href="../log4j-jul/index.html" title="JUL Adapter"><span class="none"></span>JUL Adapter</a></li>
    <li><a href="../log4j-to-slf4j/index.html" title="Log4j 2 to SLF4J Adapter"><span class="none"></span>Log4j 2 to SLF4J Adapter</a></li>
    <li><a href="../log4j-flume-ng/index.html" title="Apache Flume Appender"><span class="none"></span>Apache Flume Appender</a></li>
    <li><a href="../log4j-taglib/index.html" title="Log4j Tag Library"><span class="none"></span>Log4j Tag Library</a></li>
    <li><a href="../log4j-jmx-gui/index.html" title="Log4j JMX GUI"><span class="none"></span>Log4j JMX GUI</a></li>
    <li><a href="../log4j-web/index.html" title="Log4j Web Application Support"><span class="none"></span>Log4j Web Application Support</a></li>
    <li><a href="../log4j-appserver/index.html" title="Log4j Application Server Integration"><span class="none"></span>Log4j Application Server Integration</a></li>
    <li><a href="../log4j-couchdb/index.html" title="Log4j CouchDB appender"><span class="none"></span>Log4j CouchDB appender</a></li>
    <li><a href="../log4j-mongodb2/index.html" title="Log4j MongoDB2 appender"><span class="none"></span>Log4j MongoDB2 appender</a></li>
    <li><a href="../log4j-mongodb3/index.html" title="Log4j MongoDB3 appender"><span class="none"></span>Log4j MongoDB3 appender</a></li>
    <li><a href="../log4j-cassandra/index.html" title="Log4j Cassandra appender"><span class="none"></span>Log4j Cassandra appender</a></li>
    <li><a href="../log4j-iostreams/index.html" title="Log4j IO Streams"><span class="none"></span>Log4j IO Streams</a></li>
    <li><a href="../log4j-liquibase/index.html" title="Log4j Liquibase Binding"><span class="none"></span>Log4j Liquibase Binding</a></li>
    <li><a href="../log4j-docker/index.html" title="Log4j Docker Support"><span class="none"></span>Log4j Docker Support</a></li>
    <li><a href="../log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html" title="Log4j Spring Cloud Config Client"><span class="none"></span>Log4j Spring Cloud Config Client</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="../dependency-convergence.html" title="Dependency Convergence"><span class="none"></span>Dependency Convergence</a></li>
    <li><a href="../dependency-management.html" title="Dependency Management"><span class="none"></span>Dependency Management</a></li>
    <li><a href="../team-list.html" title="Project Team"><span class="none"></span>Project Team</a></li>
    <li><a href="../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a></li>
    <li><a href="../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a></li>
    <li><a href="../license.html" title="Project License"><span class="none"></span>Project License</a></li>
    <li><a href="../source-repository.html" title="Source Repository"><span class="none"></span>Source Repository</a></li>
    <li><a href="../project-summary.html" title="Project Summary"><span class="none"></span>Project Summary</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="../changes-report.html" title="Changes Report"><span class="none"></span>Changes Report</a></li>
    <li><a href="../jira-report.html" title="JIRA Report"><span class="none"></span>JIRA Report</a></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" >

    
        <section>
<h2><a name="Migrating_from_Log4j_1.x"></a>Migrating from Log4j 1.x</h2>
          <a name="Log4j1.2Bridge"></a>
          <section>
<h3><a name="Using_the_Log4j_1.x_bridge"></a>Using the Log4j 1.x bridge</h3>
            
<p>
              Perhaps the simplest way to convert to using Log4j 2 is to replace the log4j 1.x jar file with
              Log4j 2's log4j-1.2-api.jar. However, to use this successfully applications must meet the
              following requirements:
            </p>
              
<ol style="list-style-type: decimal">
                
<li>They must not access methods and classes internal to the Log4j 1.x implementation such
                  as Appenders, LoggerRepository or Category's
                  callAppenders method.</li>
                
<li>They must not programmatically configure Log4j.</li>
                
<li>They must not configure by calling the classes DOMConfigurator or
                  PropertyConfigurator.</li>
              </ol>
          </section>
          <section>
<h3><a name="Converting_to_the_Log4j_2_API"></a>Converting to the Log4j 2 API</h3>
            
<p>For the most part, converting from the Log4j 1.x API to Log4j 2 should be fairly simple. Many
              of the log statements will require no modification. However, where necessary the following changes must be
              made.</p>
              
<ol style="list-style-type: decimal">
                
<li>
                  The main package in version 1 is org.apache.log4j, in version 2 it is
                  org.apache.logging.log4j
                </li>
                
<li>
                  Calls to org.apache.log4j.Logger.getLogger() must be modified to
                  org.apache.logging.log4j.LogManager.getLogger().
                </li>
                
<li>
                  Calls to org.apache.log4j.Logger.getRootLogger() or
                  org.apache.log4j.LogManager.getRootLogger() must be replaced with
                  org.apache.logging.log4j.LogManager.getRootLogger().</li>
                
<li>
                  Calls to org.apache.log4j.Logger.getLogger that accept a LoggerFactory must
                  remove the org.apache.log4j.spi.LoggerFactory and use one of Log4j 2's other extension
                  mechanisms.
                </li>
                
<li>
                  Replace calls to org.apache.log4j.Logger.getEffectiveLevel() with
                  org.apache.logging.log4j.Logger.getLevel().
                </li>
                
<li>
                  Remove calls to org.apache.log4j.LogManager.shutdown(), they are not needed in version 2
                  because the Log4j Core now automatically adds a JVM shutdown hook on start up to perform any Core
                  clean ups.
                  
<ol style="list-style-type: decimal">
                    
<li>
                      Starting in Log4j 2.1, you can specify a custom
                      <a href="../log4j-core/apidocs/org/apache/logging/log4j/core/util/ShutdownCallbackRegistry.html" class="javadoc">ShutdownCallbackRegistry</a>
                      to override the default JVM shutdown hook strategy.
                    </li>
                    
<li>
                      Starting in Log4j 2.6, you can now use org.apache.logging.log4j.LogManager.shutdown()
                      to initiate shutdown manually.
                    </li>
                  </ol>
                </li>
                
<li>
                  Calls to org.apache.log4j.Logger.setLevel() or similar methods are not supported in the API.
                  Applications should remove these. Equivalent functionality is provided in the Log4j 2 implementation
                  classes, see org.apache.logging.log4j.core.config.Configurator.setLevel(), but may leave 
                  the application susceptible to changes in Log4j 2 internals.                   
                </li>
                
<li>
                  Where appropriate, applications should convert to use parameterized messages instead of String
                  concatenation.
                </li>
                
<li>
                  <a class="externalLink" href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/MDC.html">org.apache.log4j.MDC</a> and
                  <a class="externalLink" href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/NDC.html">org.apache.log4j.NDC</a>
                  have been replaced by the <a href="thread-context.html">Thread Context</a>.
                </li>
              </ol>
          </section>
          <section>
<h3><a name="Configuring_Log4j_2"></a>Configuring Log4j 2</h3>
            
<p>
              Although the Log4j 2 configuration syntax is different than that of Log4j 1.x, most, if not all, of
              the same functionality is available.
            </p>
            
<p>
              Note that system property interpolation via the ${foo} syntax has been extended to allow
              property lookups from many different sources. See the <a href="lookups.html">Lookups</a> documentation
              for more details. For example, using a lookup for the system property named catalina.base,
              in Log4j 1.x, the syntax would be ${catalina.base}. In Log4j 2, the syntax would be
              ${sys:catalina.base}.
            </p>
            
<p>
              Log4j 1.x has a XMLLayout which is different from the XmlLayout in Log4j 2, the log4j-1.2-api module
              contains a Log4j1XmlLayout which produce output in the format as in Log4j 1.x.
              The Log4j 1.x SimpleLayout can be emulated with PatternLayout &quot;%level - %m%n&quot;.
              The Log4j 1.x TTCCLayout can be emulated with PatternLayout &quot;%r [%t] %p %c %notEmpty{%ndc }- %m%n&quot;.
            </p>
            
<p>
              Both PatternLayout and EnhancedPatternLayout in Log4j 1.x can be replaced with
              PatternLayout in Log4j 2. The log4j-1.2-api module contains two pattern conversions &quot;%ndc&quot; and &quot;%properties&quot; which
              can be used to emulate &quot;%x&quot; and &quot;%X&quot; in Log4j 1.x PatternLayout (&quot;%x&quot; and %X&quot; in Log4j 2 have a slightly different format).
            </p>
            
<p>
              Below are the example configurations for Log4j 1.x and their counterparts in Log4j 2.
            </p>

            <section>
<h4><a name="Sample_1_-_Simple_configuration_using_a_Console_Appender"></a>Sample 1 - Simple configuration using a Console Appender</h4>
            
<p>Log4j 1.x XML configuration</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE log4j:configuration PUBLIC &quot;-//APACHE//DTD LOG4J 1.2//EN&quot; &quot;log4j.dtd&quot;&gt;
&lt;log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'&gt;
  &lt;appender name=&quot;STDOUT&quot; class=&quot;org.apache.log4j.ConsoleAppender&quot;&gt;
    &lt;layout class=&quot;org.apache.log4j.PatternLayout&quot;&gt;
      &lt;param name=&quot;ConversionPattern&quot; value=&quot;%d %-5p [%t] %C{2} (%F:%L) - %m%n&quot;/&gt;
    &lt;/layout&gt;
  &lt;/appender&gt;
  &lt;category name=&quot;org.apache.log4j.xml&quot;&gt;
    &lt;priority value=&quot;info&quot; /&gt;
  &lt;/category&gt;
  &lt;Root&gt;
    &lt;priority value =&quot;debug&quot; /&gt;
    &lt;appender-ref ref=&quot;STDOUT&quot; /&gt;
  &lt;/Root&gt;
&lt;/log4j:configuration&gt;</pre></div>
            
<p>Log4j 2 XML configuration</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration&gt;
  &lt;Appenders&gt;
    &lt;Console name=&quot;STDOUT&quot; target=&quot;SYSTEM_OUT&quot;&gt;
      &lt;PatternLayout pattern=&quot;%d %-5p [%t] %C{2} (%F:%L) - %m%n&quot;/&gt;
    &lt;/Console&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Logger name=&quot;org.apache.log4j.xml&quot; level=&quot;info&quot;/&gt;
    &lt;Root level=&quot;debug&quot;&gt;
      &lt;AppenderRef ref=&quot;STDOUT&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>

            </section><section>
<h4><a name="Sample_2_-_Simple_configuration_using_a_File_Appender.2C_XMLLayout_and_SimpleLayout"></a>Sample 2 - Simple configuration using a File Appender, XMLLayout and SimpleLayout</h4>
            
<p>Log4j 1.x XML configuration</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE log4j:configuration PUBLIC &quot;-//APACHE//DTD LOG4J 1.2//EN&quot; &quot;log4j.dtd&quot;&gt;
&lt;log4j:configuration xmlns:log4j=&quot;http://jakarta.apache.org/log4j/&quot;&gt;
  &lt;appender name=&quot;A1&quot; class=&quot;org.apache.log4j.FileAppender&quot;&gt;
    &lt;param name=&quot;File&quot;   value=&quot;A1.log&quot; /&gt;
    &lt;param name=&quot;Append&quot; value=&quot;false&quot; /&gt;
    &lt;layout class=&quot;org.apache.log4j.xml.XMLLayout&quot; /&gt;
  &lt;/appender&gt;
  &lt;appender name=&quot;STDOUT&quot; class=&quot;org.apache.log4j.ConsoleAppender&quot;&gt;
    &lt;layout class=&quot;org.apache.log4j.SimpleLayout&quot; /&gt;
  &lt;/appender&gt;
  &lt;category name=&quot;org.apache.log4j.xml&quot;&gt;
    &lt;priority value=&quot;debug&quot; /&gt;
    &lt;appender-ref ref=&quot;A1&quot; /&gt;
  &lt;/category&gt;
  &lt;root&gt;
    &lt;priority value =&quot;debug&quot; /&gt;
    &lt;appender-ref ref=&quot;STDOUT&quot; /&gt;
  &lt;/Root&gt;
&lt;/log4j:configuration&gt;</pre></div>

           
<p>Log4j 2 XML configuration</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration&gt;
  &lt;Appenders&gt;
    &lt;File name=&quot;A1&quot; fileName=&quot;A1.log&quot; append=&quot;false&quot;&gt;
      &lt;Log4j1XmlLayout /&gt;
    &lt;/File&gt;
    &lt;Console name=&quot;STDOUT&quot; target=&quot;SYSTEM_OUT&quot;&gt;
      &lt;PatternLayout pattern=&quot;%level - %m%n&quot;/&gt;
    &lt;/Console&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Logger name=&quot;org.apache.log4j.xml&quot; level=&quot;debug&quot;&gt;
      &lt;AppenderRef ref=&quot;A1&quot;/&gt;
    &lt;/Logger&gt;
    &lt;Root level=&quot;debug&quot;&gt;
      &lt;AppenderRef ref=&quot;STDOUT&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>

            </section><section>
<h4><a name="Sample_3_-_SocketAppender"></a>Sample 3 - SocketAppender</h4>
            
<p>Log4j 1.x XML configuration. This example from Log4j 1.x is misleading. The SocketAppender does not
              actually use a Layout. Configuring one will have no effect.</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE log4j:configuration PUBLIC &quot;-//APACHE//DTD LOG4J 1.2//EN&quot; &quot;log4j.dtd&quot;&gt;
&lt;log4j:configuration xmlns:log4j=&quot;http://jakarta.apache.org/log4j/&quot;&gt;
  &lt;appender name=&quot;A1&quot; class=&quot;org.apache.log4j.net.SocketAppender&quot;&gt;
    &lt;param name=&quot;RemoteHost&quot; value=&quot;localhost&quot;/&gt;
    &lt;param name=&quot;Port&quot; value=&quot;5000&quot;/&gt;
    &lt;param name=&quot;LocationInfo&quot; value=&quot;true&quot;/&gt;
    &lt;layout class=&quot;org.apache.log4j.PatternLayout&quot;&gt;
      &lt;param name=&quot;ConversionPattern&quot; value=&quot;%t %-5p %c{2} - %m%n&quot;/&gt;
    &lt;/layout&gt;
  &lt;/appender&gt;
  &lt;appender name=&quot;STDOUT&quot; class=&quot;org.apache.log4j.ConsoleAppender&quot;&gt;
    &lt;layout class=&quot;org.apache.log4j.PatternLayout&quot;&gt;
      &lt;param name=&quot;ConversionPattern&quot; value=&quot;%d %-5p [%t] %C{2} (%F:%L) - %m%n&quot;/&gt;
    &lt;/layout&gt;
  &lt;/appender&gt;
  &lt;category name=&quot;org.apache.log4j.xml&quot;&gt;
    &lt;priority value=&quot;debug&quot;/&gt;
    &lt;appender-ref ref=&quot;A1&quot;/&gt;
  &lt;/category&gt;
  &lt;root&gt;
    &lt;priority value=&quot;debug&quot;/&gt;
    &lt;appender-ref ref=&quot;STDOUT&quot;/&gt;
  &lt;/Root&gt;
&lt;/log4j:configuration&gt;</pre></div>

           
<p>Log4j 2 XML configuration</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration&gt;
  &lt;Appenders&gt;
    &lt;Socket name=&quot;A1&quot; host=&quot;localHost&quot; port=&quot;5000&quot;&gt;
      &lt;PatternLayout pattern=&quot;%t %-5p %c{2} - %m%n&quot;/&gt;
    &lt;/Socket&gt;
    &lt;Console name=&quot;STDOUT&quot; target=&quot;SYSTEM_OUT&quot;&gt;
      &lt;PatternLayout pattern=&quot;%d %-5p [%t] %C{2} (%F:%L) - %m%n&quot;/&gt;
    &lt;/Console&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Logger name=&quot;org.apache.log4j.xml&quot; level=&quot;debug&quot;&gt;
      &lt;AppenderRef ref=&quot;A1&quot;/&gt;
    &lt;/Logger&gt;
    &lt;Root level=&quot;debug&quot;&gt;
      &lt;AppenderRef ref=&quot;STDOUT&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>

            </section><section>
<h4><a name="Sample_4_-_AsyncAppender_and_TTCCLayout"></a>Sample 4 - AsyncAppender and TTCCLayout</h4>
            
<p>Log4j 1.x XML configuration using the AsyncAppender.</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE log4j:configuration PUBLIC &quot;-//APACHE//DTD LOG4J 1.2//EN&quot; &quot;log4j.dtd&quot;&gt;
&lt;log4j:configuration xmlns:log4j=&quot;http://jakarta.apache.org/log4j/&quot; configDebug=&quot;true&quot;&gt;
  &lt;appender name=&quot;ASYNC&quot; class=&quot;org.apache.log4j.AsyncAppender&quot;&gt;
    &lt;appender-ref ref=&quot;TEMP&quot;/&gt;
  &lt;/appender&gt;
  &lt;appender name=&quot;TEMP&quot; class=&quot;org.apache.log4j.FileAppender&quot;&gt;
    &lt;param name=&quot;File&quot; value=&quot;temp&quot;/&gt;
    &lt;layout class=&quot;org.apache.log4j.TTCCLayout&quot;&gt;
      &lt;param name=&quot;ThreadPrinting&quot; value=&quot;true&quot;/&gt;
      &lt;param name=&quot;CategoryPrefixing&quot; value=&quot;true&quot;/&gt;
      &lt;param name=&quot;ContextPrinting&quot; value=&quot;true&quot;/&gt;
    &lt;/layout&gt;
  &lt;/appender&gt;
  &lt;root&gt;
    &lt;priority value=&quot;debug&quot;/&gt;
    &lt;appender-ref ref=&quot;ASYNC&quot;/&gt;
  &lt;/Root&gt;
&lt;/log4j:configuration&gt;</pre></div>

           
<p>Log4j 2 XML configuration. </p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;debug&quot;&gt;
  &lt;Appenders&gt;
    &lt;File name=&quot;TEMP&quot; fileName=&quot;temp&quot;&gt;
      &lt;PatternLayout pattern=&quot;%r [%t] %p %c %notEmpty{%ndc }- %m%n&quot;/&gt;
    &lt;/File&gt;
    &lt;Async name=&quot;ASYNC&quot;&gt;
      &lt;AppenderRef ref=&quot;TEMP&quot;/&gt;
    &lt;/Async&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;debug&quot;&gt;
      &lt;AppenderRef ref=&quot;ASYNC&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>


            </section><section>
<h4><a name="Sample_5_-_AsyncAppender_with_Console_and_File"></a>Sample 5 - AsyncAppender with Console and File</h4>
            
<p>Log4j 1.x XML configuration using the AsyncAppender.</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE log4j:configuration PUBLIC &quot;-//APACHE//DTD LOG4J 1.2//EN&quot; &quot;log4j.dtd&quot;&gt;
&lt;log4j:configuration xmlns:log4j=&quot;http://jakarta.apache.org/log4j/&quot; configDebug=&quot;true&quot;&gt;
  &lt;appender name=&quot;ASYNC&quot; class=&quot;org.apache.log4j.AsyncAppender&quot;&gt;
    &lt;appender-ref ref=&quot;TEMP&quot;/&gt;
    &lt;appender-ref ref=&quot;CONSOLE&quot;/&gt;
  &lt;/appender&gt;
  &lt;appender name=&quot;CONSOLE&quot; class=&quot;org.apache.log4j.ConsoleAppender&quot;&gt;
    &lt;layout class=&quot;org.apache.log4j.PatternLayout&quot;&gt;
      &lt;param name=&quot;ConversionPattern&quot; value=&quot;%d %-5p [%t] %C{2} (%F:%L) - %m%n&quot;/&gt;
    &lt;/layout&gt;
  &lt;/appender&gt;
  &lt;appender name=&quot;TEMP&quot; class=&quot;org.apache.log4j.FileAppender&quot;&gt;
    &lt;param name=&quot;File&quot; value=&quot;temp&quot;/&gt;
    &lt;layout class=&quot;org.apache.log4j.PatternLayout&quot;&gt;
      &lt;param name=&quot;ConversionPattern&quot; value=&quot;%d %-5p [%t] %C{2} (%F:%L) - %m%n&quot;/&gt;
    &lt;/layout&gt;
  &lt;/appender&gt;
  &lt;root&gt;
    &lt;priority value=&quot;debug&quot;/&gt;
    &lt;appender-ref ref=&quot;ASYNC&quot;/&gt;
  &lt;/Root&gt;
&lt;/log4j:configuration&gt;</pre></div>

            
<p>Log4j 2 XML configuration. Note that the Async Appender should be configured after the appenders it
              references. This will allow it to shutdown properly.</p>
            
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;debug&quot;&gt;
  &lt;Appenders&gt;
    &lt;Console name=&quot;CONSOLE&quot; target=&quot;SYSTEM_OUT&quot;&gt;
      &lt;PatternLayout pattern=&quot;%d %-5p [%t] %C{2} (%F:%L) - %m%n&quot;/&gt;
    &lt;/Console&gt;
    &lt;File name=&quot;TEMP&quot; fileName=&quot;temp&quot;&gt;
      &lt;PatternLayout pattern=&quot;%d %-5p [%t] %C{2} (%F:%L) - %m%n&quot;/&gt;
    &lt;/File&gt;
    &lt;Async name=&quot;ASYNC&quot;&gt;
      &lt;AppenderRef ref=&quot;TEMP&quot;/&gt;
      &lt;AppenderRef ref=&quot;CONSOLE&quot;/&gt;
    &lt;/Async&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;debug&quot;&gt;
      &lt;AppenderRef ref=&quot;ASYNC&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
          </section></section>
        </section>
    

        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
<p align="center">Copyright &copy; 1999-2019 <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>
