<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from net.sourceforge.maven-taglib:maven-taglib-plugin:2.4:tagreference 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" />
    <title>Log4j Tag Library &#x2013; Tag reference report.</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="../index.html" title="Log4j">Log4j</a></li>
      <li class="pull-right"><span class="divider">|</span>
<a href="http://logging.apache.org/" class="externalLink" title="Logging Services">Logging Services</a></li>
      <li class="pull-right"><span class="divider">|</span>
<a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a></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><a href="../manual/migration.html" title="Log4j 1.x Migration"><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">Project Documentation</li>
    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li>
    <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-down"></span>Project Reports</a>
     <ul class="nav nav-list">
      <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>
      <li><a href="revapi-report.html" title="API Change Analysis"><span class="none"></span>API Change Analysis</a></li>
      <li><a href="checkstyle.html" title="Checkstyle"><span class="none"></span>Checkstyle</a></li>
      <li><a href="apidocs/index.html" title="Javadoc"><span class="none"></span>Javadoc</a></li>
      <li><a href="findbugs.html" title="FindBugs"><span class="none"></span>FindBugs</a></li>
      <li><a href="xref/index.html" title="Source Xref"><span class="none"></span>Source Xref</a></li>
      <li class="active"><a href="#"><span class="none"></span>Tag reference</a></li>
      <li><a href="tlddoc/index.html" title="Taglibdoc documentation"><span class="none"></span>Taglibdoc documentation</a></li>
      <li><a href="taglibvalidation.html" title="Tag library validation"><span class="none"></span>Tag library validation</a></li>
     </ul></li>
   <li class="nav-header"><img class="imageLink" src="icon-info-sign" alt="Log4j Project Information" border="0"/> Log4j Project Information</li>
    <li><a href="../dependencies.html" title="Dependencies"><span class="none"></span>Dependencies</a></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="icon-cog" alt="Log4j Project Reports" border="0"/> Log4j 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="../surefire-report.html" title="Surefire Report"><span class="none"></span>Surefire 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="Tag_reference_sheet"></a>Tag reference sheet</h2>
<p>Tag library reference for the following tag libraries:</p>
<ul>
<li><a href="#log.tld">Log4j 2 Tag Library (log.tld)</a> - uri:http://logging.apache.org/log4j/tld/log</li></ul></section><a name="log.tld"></a><section>
<h2><a name="Log4j_2_Tag_Library_-_version_1.0"></a>Log4j 2 Tag Library - version 1.0</h2>
<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. You can learn more about Log4j 2 on the
&lt;a href=&quot;http://logging.apache.org/log4j/2.x/&quot;&gt;Log4j 2&lt;/a&gt; website.

This tag library is based on the Jakarta Commons Log Taglib by Joseph Ottinger and James
Strachan. For the most part, logging tags written against Jakarta Commons Log Taglib should
work against this library as well. However, the &quot;category&quot; attribute from Jakarta has become
the &quot;logger&quot; attribute in this library.

In accordance with the org.apache.logging.log4j.Logger API, this tag library has tags to
support the following logging calls: &quot;catching&quot;, &quot;entry&quot;, &quot;exit&quot;, &quot;log&quot;, &quot;trace&quot;, &quot;debug&quot;,
&quot;info&quot;, &quot;warn&quot;, &quot;error&quot;, and &quot;fatal&quot;. The &quot;trace&quot; tag was not supported in Jakarta Commons Log
Taglib. The &quot;setLogger&quot;, &quot;catching&quot;, &quot;entry&quot;, and &quot;trace&quot; tags are new to this library. This
tag library also supports the conditional tag &quot;ifEnabled&quot; (new) and troubleshooting tag &quot;dump&quot;
(existed in Jakarta Commons Log Taglib).

By default, this tag library uses a different Logger for each JSP named after the JSP ID.
You can customize the Logger in any of the logging tags or the &quot;ifEnabled&quot; tag with the
&quot;logger&quot; attribute. You can also use the &quot;setLogger&quot; tag to specify the Logger that should apply
for the rest of a JSP's execution. If the &quot;setLogger&quot; tag comes before any other logging tags in
a JSP, the default Logger for that JSP will not be created, but instead the specified logger is
the only one that will be used.

Every effort was made to optimize these tags and ensure decent performance, but users of
this library should keep in mind that the creation and execution of JSP tags adds significant
overhead to the standard Log4j method calls. While the &quot;trace&quot;, &quot;debug&quot;, and &quot;info&quot; options are
available in this library, their uses are not nanosecond order of magnitude with logging off
that users may be used to with standard Log4j method calls. Therefore, they should be used
sparingly. Use of the &quot;ifEnabled&quot; tag does not improve this performance; this tag is available
to conditionally evaluate other actions in addition to logging actions.</p>
<p><b>Namespace definition:</b> xmlns:log=&quot;http://logging.apache.org/log4j/tld/log&quot;</p>
<p><b>Tags</b></p>
<ul>
<li><a href="#log:catching">catching</a> Equivalent of org</li>
<li><a href="#log:debug">debug</a> Equivalent of org</li>
<li><a href="#log:dump">dump</a> Displays all variables bound to the specified scope</li>
<li><a href="#log:entry">entry</a> Equivalent of org</li>
<li><a href="#log:error">error</a> Equivalent of org</li>
<li><a href="#log:exit">exit</a> Equivalent of org</li>
<li><a href="#log:fatal">fatal</a> Equivalent of org</li>
<li><a href="#log:ifEnabled">ifEnabled</a> Conditional tag that evaluates its body only if the specified log level and
      marker are enabled</li>
<li><a href="#log:info">info</a> Equivalent of org</li>
<li><a href="#log:log">log</a> Equivalent of org</li>
<li><a href="#log:setLogger">setLogger</a> Sets the default Logger to use for the rest of this JSP's execution OR exports
      an org</li>
<li><a href="#log:trace">trace</a> Equivalent of org</li>
<li><a href="#log:warn">warn</a> Equivalent of org</li></ul>
<p>Required attributes are marked with a<b>*</b></p><a name="log:catching"></a><section>
<h3><a name="a.3Clog:catching.3E"></a>&lt;log:catching&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#catching().</p>
<p>Can contain:empty</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;c:catch var=&quot;myException&quot;&gt;
    &lt;%= 5 / 0 %&gt;
&lt;/c:catch&gt;
&lt;c:if test=&quot;${myException != null}&quot;&gt;
    &lt;log:catching exception=&quot;${myException}&quot; /&gt;
&lt;/c:if&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="b">
<td><b>exception*</b></td>
<td>The exception that should be logged.</td>
<td>String</td></tr>
<tr class="a">
<td>level</td>
<td>The name of any valid level (TRACE, DEBUG, INFO, etc.) or an actual Level
        instance to log this at. This value is case-insensitive and defaults to ERROR for this
        tag.</td>
<td>String</td></tr>
<tr class="b">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr></table></section></section><a name="log:debug"></a><section>
<h3><a name="a.3Clog:debug.3E"></a>&lt;log:debug&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#debug(). This tag has dynamic
      attributes enabled. You may specify any number of arbitrary attributes whose values will be
      substituted in the String message. The &quot;message&quot; must be a String for this to work correctly.
      See the Log4j 2 manual for more information about message parameters and substitution. Only
      attribute values are used; attribute names are ignored.</p>
<p>Can contain:JSP</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:debug message=&quot;Log this message.&quot; /&gt;
&lt;log:debug logger=&quot;com.foo.bar&quot; message=&quot;${objectToLog}&quot; exception=&quot;${exception}&quot;
           marker=&quot;${marker}&quot; /&gt;
&lt;log:debug logger=&quot;com.foo.bar&quot; exception=&quot;${exception}&quot; marker=&quot;${marker}&quot;&gt;
    Log this message
&lt;/log:debug&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="b">
<td>exception</td>
<td>Optional exception that should be logged.</td>
<td>String</td></tr>
<tr class="a">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="b">
<td>marker</td>
<td>Optional marker data to include in this logging event.</td>
<td>org.apache.logging.log4j.Marker</td></tr>
<tr class="a">
<td>message</td>
<td>The message that should be logged. May be a String, Object, or
        org.apache.logging.log4j.message.Message. Either this attribute or body content are
        required.</td>
<td>String</td></tr></table></section></section><a name="log:dump"></a><section>
<h3><a name="a.3Clog:dump.3E"></a>&lt;log:dump&gt;</h3>
<p>Displays all variables bound to the specified scope.</p>
<p>Can contain:empty</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:dump scope=&quot;page&quot; /&gt;
&lt;log:dump scope=&quot;request&quot; /&gt;
&lt;log:dump scope=&quot;session&quot; /&gt;
&lt;log:dump scope=&quot;application&quot; /&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="b">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="a">
<td><b>scope*</b></td>
<td>Either &quot;page,&quot; &quot;request,&quot; &quot;session,&quot; or &quot;application,&quot; the scope whose bound
        variables should be dumped onto the page inline.</td>
<td>String</td></tr></table></section></section><a name="log:entry"></a><section>
<h3><a name="a.3Clog:entry.3E"></a>&lt;log:entry&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#entry(). This tag has dynamic
      attributes enabled. You may specify any number of arbitrary attributes whose values
      will be logged with this entry (TRACE) statement. The attribute names will be
      ignored.</p>
<p>Can contain:empty</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:entry /&gt;
&lt;log:entry logger=&quot;com.foo.bar&quot; /&gt;
&lt;log:entry arg1=&quot;${value1}&quot; arg2=&quot;${value2}&quot; /&gt;
&lt;log:entry logger=&quot;${myLogger}&quot; argA=&quot;${value1}&quot; argB=&quot;${value2}&quot; /&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="b">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="a">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr></table></section></section><a name="log:error"></a><section>
<h3><a name="a.3Clog:error.3E"></a>&lt;log:error&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#error(). This tag has dynamic
      attributes enabled. You may specify any number of arbitrary attributes whose values will be
      substituted in the String message. The &quot;message&quot; must be a String for this to work correctly.
      See the Log4j 2 manual for more information about message parameters and substitution. Only
      attribute values are used; attribute names are ignored.</p>
<p>Can contain:JSP</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:error message=&quot;Log this message.&quot; /&gt;
&lt;log:error logger=&quot;com.foo.bar&quot; message=&quot;${objectToLog}&quot; exception=&quot;${exception}&quot;
           marker=&quot;${marker}&quot; /&gt;
&lt;log:error logger=&quot;com.foo.bar&quot; exception=&quot;${exception}&quot; marker=&quot;${marker}&quot;&gt;
    Log this message
&lt;/log:error&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="b">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="a">
<td>exception</td>
<td>Optional exception that should be logged.</td>
<td>String</td></tr>
<tr class="b">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="a">
<td>marker</td>
<td>Optional marker data to include in this logging event.</td>
<td>org.apache.logging.log4j.Marker</td></tr>
<tr class="b">
<td>message</td>
<td>The message that should be logged. May be a String, Object, or
        org.apache.logging.log4j.message.Message. Either this attribute or body content are
        required.</td>
<td>String</td></tr></table></section></section><a name="log:exit"></a><section>
<h3><a name="a.3Clog:exit.3E"></a>&lt;log:exit&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#exit().</p>
<p>Can contain:empty</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:exit /&gt;
&lt;log:exit logger=&quot;com.foo.bar&quot; /&gt;
&lt;log:exit result=&quot;${value}&quot; /&gt;
&lt;log:exit logger=&quot;${myLogger}&quot; result=&quot;${value}&quot; /&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="b">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="a">
<td>result</td>
<td>An optional object to log with the exit (TRACE) statement.</td>
<td>String</td></tr></table></section></section><a name="log:fatal"></a><section>
<h3><a name="a.3Clog:fatal.3E"></a>&lt;log:fatal&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#fatal(). This tag has dynamic
      attributes enabled. You may specify any number of arbitrary attributes whose values will be
      substituted in the String message. The &quot;message&quot; must be a String for this to work correctly.
      See the Log4j 2 manual for more information about message parameters and substitution. Only
      attribute values are used; attribute names are ignored.</p>
<p>Can contain:JSP</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:fatal message=&quot;Log this message.&quot; /&gt;
&lt;log:fatal logger=&quot;com.foo.bar&quot; message=&quot;${objectToLog}&quot; exception=&quot;${exception}&quot;
           marker=&quot;${marker}&quot; /&gt;
&lt;log:fatal logger=&quot;com.foo.bar&quot; exception=&quot;${exception}&quot; marker=&quot;${marker}&quot;&gt;
    Log this message
&lt;/log:fatal&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="b">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="a">
<td>exception</td>
<td>Optional exception that should be logged.</td>
<td>String</td></tr>
<tr class="b">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="a">
<td>marker</td>
<td>Optional marker data to include in this logging event.</td>
<td>org.apache.logging.log4j.Marker</td></tr>
<tr class="b">
<td>message</td>
<td>The message that should be logged. May be a String, Object, or
        org.apache.logging.log4j.message.Message. Either this attribute or body content are
        required.</td>
<td>String</td></tr></table></section></section><a name="log:ifEnabled"></a><section>
<h3><a name="a.3Clog:ifEnabled.3E"></a>&lt;log:ifEnabled&gt;</h3>
<p>Conditional tag that evaluates its body only if the specified log level and
      marker are enabled.</p>
<p>Can contain:JSP</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:ifEnabled level=&quot;info&quot;&gt;
    Evaluate this content
&lt;/log:ifEnabled&gt;

&lt;log:ifEnabled logger=&quot;com.foo.bar&quot; level=&quot;INFO&quot; marker=&quot;${marker}&quot;&gt;
    Evaluate this content
&lt;/log:ifEnabled&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="b">
<td><b>level*</b></td>
<td>The name of any valid Level (TRACE, DEBUG, INFO, etc.) or an actual Level
        instance to check whether it is enabled. This value is case-insensitive.</td>
<td>String</td></tr>
<tr class="a">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="b">
<td>marker</td>
<td>Marker data to include in the enabled check.</td>
<td>org.apache.logging.log4j.Marker</td></tr></table></section></section><a name="log:info"></a><section>
<h3><a name="a.3Clog:info.3E"></a>&lt;log:info&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#info(). This tag has dynamic
      attributes enabled. You may specify any number of arbitrary attributes whose values will be
      substituted in the String message. The &quot;message&quot; must be a String for this to work correctly.
      See the Log4j 2 manual for more information about message parameters and substitution. Only
      attribute values are used; attribute names are ignored.</p>
<p>Can contain:JSP</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:info message=&quot;Log this message.&quot; /&gt;
&lt;log:info logger=&quot;com.foo.bar&quot; message=&quot;${objectToLog}&quot; exception=&quot;${exception}&quot;
          marker=&quot;${marker}&quot; /&gt;
&lt;log:info logger=&quot;com.foo.bar&quot; exception=&quot;${exception}&quot; marker=&quot;${marker}&quot;&gt;
    Log this message
&lt;/log:info&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="b">
<td>exception</td>
<td>Optional exception that should be logged.</td>
<td>String</td></tr>
<tr class="a">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="b">
<td>marker</td>
<td>Optional marker data to include in this logging event.</td>
<td>org.apache.logging.log4j.Marker</td></tr>
<tr class="a">
<td>message</td>
<td>The message that should be logged. May be a String, Object, or
        org.apache.logging.log4j.message.Message. Either this attribute or body content are
        required.</td>
<td>String</td></tr></table></section></section><a name="log:log"></a><section>
<h3><a name="a.3Clog:log.3E"></a>&lt;log:log&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#log(). This tag has dynamic
      attributes enabled. You may specify any number of arbitrary attributes whose values will be
      substituted in the String message. The &quot;message&quot; must be a String for this to work correctly.
      See the Log4j 2 manual for more information about message parameters and substitution. Only
      attribute values are used; attribute names are ignored.</p>
<p>Can contain:JSP</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:log level=&quot;warn&quot; message=&quot;Log this message.&quot; /&gt;
&lt;log:log logger=&quot;com.foo.bar&quot; level=&quot;ERROR&quot; message=&quot;${objectToLog}&quot;
         exception=&quot;${exception}&quot; marker=&quot;${marker}&quot; /&gt;
&lt;log:log logger=&quot;com.foo.bar&quot; level=&quot;info&quot; exception=&quot;${exception}&quot; marker=&quot;${marker}&quot;&gt;
    Log this message
&lt;/log:log&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="b">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="a">
<td>exception</td>
<td>Optional exception that should be logged.</td>
<td>String</td></tr>
<tr class="b">
<td><b>level*</b></td>
<td>The name of any valid level (TRACE, DEBUG, INFO, etc.) or an actual Level
        instance to log this at. This value is case-insensitive.</td>
<td>String</td></tr>
<tr class="a">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="b">
<td>marker</td>
<td>Optional marker data to include in this logging event.</td>
<td>org.apache.logging.log4j.Marker</td></tr>
<tr class="a">
<td>message</td>
<td>The message that should be logged. May be a String, Object, or
        org.apache.logging.log4j.message.Message. Either this attribute or body content are
        required.</td>
<td>String</td></tr></table></section></section><a name="log:setLogger"></a><section>
<h3><a name="a.3Clog:setLogger.3E"></a>&lt;log:setLogger&gt;</h3>
<p>Sets the default Logger to use for the rest of this JSP's execution OR exports
      an org.apache.logging.log4j.Logger instance as the specified EL variable. The &quot;value&quot;
      attribute specifies either the String name of a Logger to create or an actual Logger instance.
      By default, Loggers are constructed and assigned the standard
      org.apache.logging.log4j.message.ParameterizedMessageFactory. The optional &quot;factory&quot; attribute
      can be used to override the default message factory.</p>
<p>Can contain:empty</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:logger value=&quot;com.foo.bar&quot; /&gt;
&lt;log:logger value=&quot;com.bar.foo&quot; var=&quot;myLogger&quot; /&gt;
&lt;log:debug message=&quot;This should log with com.foo.bar.&quot; /&gt;
&lt;log:debug logger=&quot;${myLogger}&quot; message=&quot;This should log with com.bar.foo.&quot; /&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="b">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="a">
<td>factory</td>
<td>Specify this optional tag to provide a message factory other than the default
        ParameterizedMessageFactory message factory to use for the Logger. If the Logger has already
        been created with a different message factory, this will be ignored. Using this attribute
        makes no sense if the &quot;value&quot; attribute's value is an actual Logger instance, since its
        message factory cannot be changed.</td>
<td>org.apache.logging.log4j.message.MessageFactory</td></tr>
<tr class="b">
<td><b>logger*</b></td>
<td>The name or instance of the Logger to set as the JSP's default Logger or
        the name of the Logger to export as the specified EL variable.</td>
<td>String</td></tr>
<tr class="a">
<td>scope</td>
<td>Either &quot;page,&quot; &quot;request,&quot; &quot;session,&quot; or &quot;application,&quot; the optional scope that
        the EL variable should be exported to (defaults to &quot;page&quot;).</td>
<td>String</td></tr>
<tr class="b">
<td>var</td>
<td>The optional name of the EL variable to export this Logger as. Using this
        attribute makes no sense if the &quot;value&quot; attribute's value is an actual Logger instance.
        That would result in an existing Logger on the scope being re-added to the
        scope.</td>
<td>String</td></tr></table></section></section><a name="log:trace"></a><section>
<h3><a name="a.3Clog:trace.3E"></a>&lt;log:trace&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#trace(). This tag has dynamic
      attributes enabled. You may specify any number of arbitrary attributes whose values will be
      substituted in the String message. The &quot;message&quot; must be a String for this to work correctly.
      See the Log4j 2 manual for more information about message parameters and substitution. Only
      attribute values are used; attribute names are ignored.</p>
<p>Can contain:JSP</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:trace message=&quot;Log this message.&quot; /&gt;
&lt;log:trace logger=&quot;com.foo.bar&quot; message=&quot;${objectToLog}&quot; exception=&quot;${exception}&quot;
           marker=&quot;${marker}&quot; /&gt;
&lt;log:trace logger=&quot;com.foo.bar&quot; exception=&quot;${exception}&quot; marker=&quot;${marker}&quot;&gt;
    Log this message
&lt;/log:trace&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="b">
<td>exception</td>
<td>Optional exception that should be logged.</td>
<td>String</td></tr>
<tr class="a">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="b">
<td>marker</td>
<td>Optional marker data to include in this logging event.</td>
<td>org.apache.logging.log4j.Marker</td></tr>
<tr class="a">
<td>message</td>
<td>The message that should be logged. May be a String, Object, or
        org.apache.logging.log4j.message.Message. Either this attribute or body content are
        required.</td>
<td>String</td></tr></table></section></section><a name="log:warn"></a><section>
<h3><a name="a.3Clog:warn.3E"></a>&lt;log:warn&gt;</h3>
<p>Equivalent of org.apache.logging.log4j.Logger#warn(). This tag has dynamic
      attributes enabled. You may specify any number of arbitrary attributes whose values will be
      substituted in the String message. The &quot;message&quot; must be a String for this to work correctly.
      See the Log4j 2 manual for more information about message parameters and substitution. Only
      attribute values are used; attribute names are ignored.</p>
<p>Can contain:JSP</p><section>
<h4><a name="Example"></a>Example</h4>
<div class="source"><pre class="prettyprint">
&lt;log:warn message=&quot;Log this message.&quot; /&gt;
&lt;log:warn logger=&quot;com.foo.bar&quot; message=&quot;${objectToLog}&quot; exception=&quot;${exception}&quot;
          marker=&quot;${marker}&quot; /&gt;
&lt;log:warn logger=&quot;com.foo.bar&quot; exception=&quot;${exception}&quot; marker=&quot;${marker}&quot;&gt;
    Log this message
&lt;/log:warn&gt;
    </pre></div></section><section>
<h4><a name="Attributes"></a>Attributes</h4>
<table border="0" class="table table-striped">
<tr class="b">
<th>Name</th>
<th>Description</th>
<th>Type</th></tr>
<tr class="a">
<td>exception</td>
<td>Optional exception that should be logged.</td>
<td>String</td></tr>
<tr class="b">
<td>logger</td>
<td>The name or instance of the Logger to use to override the default Logger
        for this JSP.</td>
<td>String</td></tr>
<tr class="a">
<td>marker</td>
<td>Optional marker data to include in this logging event.</td>
<td>org.apache.logging.log4j.Marker</td></tr>
<tr class="b">
<td>message</td>
<td>The message that should be logged. May be a String, Object, or
        org.apache.logging.log4j.message.Message. Either this attribute or body content are
        required.</td>
<td>String</td></tr></table></section></section></section><!-- PB -->
        </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>
