<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from src/site/xdoc/manual/migration.xml at 2020-05-10
 | 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: 2020-05-10<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.13.3</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="../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="../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-jpl/index.html" title="JDK Platform Logger"><span class="none"></span>JDK Platform Logger</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-2020 <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>
