<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from src/site/xdoc/manual/filters.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; Log4j Filters</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><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 class="active"><a href="#"><span class="icon-chevron-down"></span>Filters</a>
     <ul class="nav nav-list">
      <li><a href="../manual/filters.html#BurstFilter" title="Burst"><span class="none"></span>Burst</a></li>
      <li><a href="../manual/filters.html#CompositeFilter" title="Composite Filter"><span class="none"></span>Composite Filter</a></li>
      <li><a href="../manual/filters.html#DynamicThresholdFilter" title="Dynamic Threshold"><span class="none"></span>Dynamic Threshold</a></li>
      <li><a href="../manual/filters.html#MapFilter" title="Map"><span class="none"></span>Map</a></li>
      <li><a href="../manual/filters.html#MarkerFilter" title="Marker"><span class="none"></span>Marker</a></li>
      <li><a href="../manual/filters.html#RegexFilter" title="Regex"><span class="none"></span>Regex</a></li>
      <li><a href="../manual/filters.html#Script" title="Script"><span class="none"></span>Script</a></li>
      <li><a href="../manual/filters.html#StructuredDataFilter" title="Structured Data"><span class="none"></span>Structured Data</a></li>
      <li><a href="../manual/filters.html#ThreadContextMapFilter" title="Thread Context Map"><span class="none"></span>Thread Context Map</a></li>
      <li><a href="../manual/filters.html#ThresholdFilter" title="Threshold"><span class="none"></span>Threshold</a></li>
      <li><a href="../manual/filters.html#TimeFilter" title="Time"><span class="none"></span>Time</a></li>
     </ul></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="Filters"></a>Filters</h2>
        
<p>
          Filters allow Log Events to be evaluated to determine if or how they should be published. A Filter
          will be called on one of its filter methods and will return a Result, which is an Enum that has
          one of 3 values - ACCEPT, DENY or NEUTRAL.
        </p>
        
<p>
          Filters may be configured in one of four locations:
        </p>
        
<ol style="list-style-type: decimal">
          
<li>Context-wide Filters are configured directly in the configuration. Events that are
            rejected by these filters will not be passed to loggers for further processing. Once an
            event has been accepted by a Context-wide filter it will not be evaluated by any other
            Context-wide Filters nor will the Logger's Level be used to filter the event. The event
            will be evaluated by Logger and Appender Filters however.
          </li>
          
<li>Logger Filters are configured on a specified Logger. These are evaluated after the
            Context-wide Filters and the Log Level for the Logger. Events that are rejected by these
            filters will be discarded and the event will not be passed to a parent Logger regardless
            of the additivity setting.
          </li>
          
<li>Appender Filters are used to determine if a specific Appender should handle the
            formatting and publication of the event.
          </li>
          
<li>Appender Reference Filters are used to determine if a Logger should route the event to
            an appender.
          </li>
        </ol>
        <a name="BurstFilter"></a>
        <section>
<h3><a name="BurstFilter"></a>BurstFilter</h3>
          
<p>
            The BurstFilter provides a mechanism to control the rate at which LogEvents are processed by
            silently discarding events after the maximum limit has been reached.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Burst Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>level</td>
              
<td>String</td>
              
<td>Level of messages to be filtered. Anything at or below this level will be
                filtered out if maxBurst has been exceeded. The default is
                WARN meaning any messages that are higher than warn will be logged
                regardless of the size of a burst.
              </td>
            </tr>
            
<tr class="a">
              
<td>rate</td>
              
<td>float</td>
              
<td>The average number of events per second to allow.</td>
            </tr>
            
<tr class="b">
              
<td>maxBurst</td>
              
<td>integer</td>
              
<td>The maximum number of events that can occur before events are filtered for exceeding the
                average rate. The default is 10 times the rate.</td>
            </tr>
            
<tr class="a">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="b">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            A configuration containing the BurstFilter might look like:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="CompositeFilter"></a>
        <section>
<h3><a name="CompositeFilter"></a>CompositeFilter</h3>
          
<p>
            The CompositeFilter provides a way to specify more than one filter. It is added to the
            configuration as a filters element and contains other filters to be evaluated. The filters
            element accepts no parameters.
          </p>
          
<p>
            A configuration containing the CompositeFilter might look like:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Filters&gt;
    &lt;MarkerFilter marker=&quot;EVENT&quot; onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot;/&gt;
    &lt;DynamicThresholdFilter key=&quot;loginId&quot; defaultThreshold=&quot;ERROR&quot;
                            onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot;&gt;
      &lt;KeyValuePair key=&quot;User1&quot; value=&quot;DEBUG&quot;/&gt;
    &lt;/DynamicThresholdFilter&gt;
  &lt;/Filters&gt;
  &lt;Appenders&gt;
    &lt;File name=&quot;Audit&quot; fileName=&quot;logs/audit.log&quot;&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
    &lt;/File&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Logger name=&quot;EventLogger&quot; level=&quot;info&quot;&gt;
      &lt;AppenderRef ref=&quot;Audit&quot;/&gt;
    &lt;/Logger&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="DynamicThresholdFilter"></a>
        <section>
<h3><a name="DynamicThresholdFilter"></a>DynamicThresholdFilter</h3>
          
<p>
            The DynamicThresholdFilter allows filtering by log level based on specific attributes. For example,
            if the user's loginId is being captured in the ThreadContext Map then it is possible to enable
            debug logging for only that user. If the log event does not contain the specified ThreadContext item
            NEUTRAL will be returned.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Dynamic Threshold Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>key</td>
              
<td>String</td>
              
<td>The name of the item in the ThreadContext Map to compare.</td>
            </tr>
            
<tr class="a">
              
<td>defaultThreshold</td>
              
<td>String</td>
              
<td>Level of messages to be filtered. The default threshold only applies if the log event contains
                the specified ThreadContext Map item and its value does not match any key in
                the key/value pairs.
              </td>
            </tr>
            
<tr class="b">
              
<td>keyValuePair</td>
              
<td>KeyValuePair[]</td>
              
<td>One or more KeyValuePair elements that define the matching value for the key and the Level
                to evaluate when the key matches.</td>
            </tr>
            
<tr class="a">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="b">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            Here is a sample configuration containing the DynamicThresholdFilter:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;DynamicThresholdFilter key=&quot;loginId&quot; defaultThreshold=&quot;ERROR&quot;
                          onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot;&gt;
    &lt;KeyValuePair key=&quot;User1&quot; value=&quot;DEBUG&quot;/&gt;
  &lt;/DynamicThresholdFilter&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="MapFilter"></a>
        <section>
<h3><a name="MapFilter"></a>MapFilter</h3>
          
<p>
            The MapFilter allows filtering against data elements that are in a MapMessage.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Map Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>keyValuePair</td>
              
<td>KeyValuePair[]</td>
              
<td>One or more KeyValuePair elements that define the key in the map and the value to match on. If the
              same key is specified more than once then the check for that key will automatically be an &quot;or&quot; since
              a Map can only contain a single value.</td>
            </tr>
            
<tr class="a">
              
<td>operator</td>
              
<td>String</td>
              
<td>If the operator is &quot;or&quot; then a match by any one of the key/value pairs will be considered to be
                a match, otherwise all the key/value pairs must match.</td>
            </tr>
            
<tr class="b">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="a">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            As in this configuration, the MapFilter can be used to log particular events:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;MapFilter onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot; operator=&quot;or&quot;&gt;
    &lt;KeyValuePair key=&quot;eventId&quot; value=&quot;Login&quot;/&gt;
    &lt;KeyValuePair key=&quot;eventId&quot; value=&quot;Logout&quot;/&gt;
  &lt;/MapFilter&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
          
<p>
            This sample configuration will exhibit the same behavior as the preceding example since the only
            logger configured is the root.
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;MapFilter onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot; operator=&quot;or&quot;&gt;
        &lt;KeyValuePair key=&quot;eventId&quot; value=&quot;Login&quot;/&gt;
        &lt;KeyValuePair key=&quot;eventId&quot; value=&quot;Logout&quot;/&gt;
      &lt;/MapFilter&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;&gt;
      &lt;/AppenderRef&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
          
<p>
            This third sample configuration will exhibit the same behavior as the preceding examples since the only
            logger configured is the root and the root is only configured with a single appender reference.
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;&gt;
        &lt;MapFilter onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot; operator=&quot;or&quot;&gt;
          &lt;KeyValuePair key=&quot;eventId&quot; value=&quot;Login&quot;/&gt;
          &lt;KeyValuePair key=&quot;eventId&quot; value=&quot;Logout&quot;/&gt;
        &lt;/MapFilter&gt;
      &lt;/AppenderRef&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="MarkerFilter"></a>
        <section>
<h3><a name="MarkerFilter"></a>MarkerFilter</h3>
          
<p>
            The MarkerFilter compares the configured Marker value against the Marker that is included
            in the LogEvent. A match occurs when the Marker name matches either the Log Event's Marker
            or one of its parents.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Marker Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>marker</td>
              
<td>String</td>
              
<td>
                The name of the Marker to compare.
              </td>
            </tr>
            
<tr class="a">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="b">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            A sample configuration that only allows the event to be written by the appender if the Marker matches:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;MarkerFilter marker=&quot;FLOW&quot; onMatch=&quot;ACCEPT&quot; onMismatch=&quot;DENY&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="NoMarkerFilter"></a>
        <section>
<h3><a name="NoMarkerFilter"></a>NoMarkerFilter</h3>
          
<p>
          The NoMarkerFilter checks that there is no marker included in the LogEvent. A match occurs when there is no
          marker in the Log Event.</p>
          
<table border="0" class="table table-striped"><caption align="top">No Marker Filter Parameters</caption>
          
          
<tr class="a">
            
<th>Parameter Name</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>onMatch</td>
            
<td>string</td>
            
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is
              NEUTRAL.</td>
          </tr>
            
<tr class="a">
              
<td>onMismatch</td>
              
<td>string</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default
                value is DENY.</td>
            </tr>
          </table>
          
<p>
          A sample configuration that only allows the event to be written by the
            appender if no marker is there:</p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot; filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;NoMarkerFilter onMatch=&quot;ACCEPT&quot; onMismatch=&quot;DENY&quot;/&gt;
      &lt;PatternLayout pattern=&quot;%d %p %c{1.} [%t] %m%n&quot;/&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="RegexFilter"></a>
        <section>
<h3><a name="RegexFilter"></a>RegexFilter</h3>
           
<p>
            The RegexFilter allows the formatted or unformatted message to be compared against a regular expression.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Regex Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>regex</td>
              
<td>String</td>
              
<td>
                The regular expression.
              </td>
            </tr>
            
<tr class="a">
              
<td>useRawMsg</td>
              
<td>boolean</td>
              
<td>If true the unformatted message will be used, otherwise the formatted message will be used. The
                default value is false.</td>
            </tr>
            
<tr class="b">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="a">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            A sample configuration that only allows the event to be written by the appender if it contains the word
            &quot;test&quot;:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;RegexFilter regex=&quot;.* test .*&quot; onMatch=&quot;ACCEPT&quot; onMismatch=&quot;DENY&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="Script"></a>
        <section>
<h3><a name="Script"></a>Script</h3>
          
<p>
            The ScriptFilter executes a script that returns true or false.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Script Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>script</td>
              
<td>Script, ScriptFile or ScriptRef</td>
              
<td>The Script element that specifies the logic to be executed.
              </td>
            </tr>
            
<tr class="a">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the script returns true. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="b">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter returns false. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<table border="0" class="table table-striped"><caption align="top">Script Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>configuration</td>
              
<td>Configuration</td>
              
<td>The Configuration that owns this ScriptFilter.</td>
            </tr>
            
<tr class="a">
              
<td>level</td>
              
<td>Level</td>
              
<td>The logging Level associated with the event. Only present when configured as a global filter.</td>
            </tr>
            
<tr class="b">
              
<td>loggerName</td>
              
<td>String</td>
              
<td>The name of the logger. Only present when configured as a global filter.</td>
            </tr>
            
<tr class="a">
              
<td>logEvent</td>
              
<td>LogEvent</td>
              
<td>The LogEvent being processed. Not present when configured as a global filter.</td>
            </tr>
            
<tr class="b">
              
<td>marker</td>
              
<td>Marker</td>
              
<td>The Marker passed on the logging call, if any. Only present when configured as a global filter.</td>
            </tr>
            
<tr class="a">
              
<td>message</td>
              
<td>Message</td>
              
<td>The Message associated with the logging call. Only present when configured as a global filter.</td>
            </tr>
            
<tr class="b">
              
<td>parameters</td>
              
<td>Object[]</td>
              
<td>The parameters passed to the logging call. Only present when configured as a global filter.
                Some Messages include the parameters as part of the Message.
              </td>
            </tr>
            
<tr class="a">
              
<td>throwable</td>
              
<td>Throwable</td>
              
<td>The Throwable passed to the logging call, if any. Only present when configured as a global filter.
                Som Messages include Throwable as part of the Message.
              </td>
            </tr>
            
<tr class="b">
              
<td>substitutor</td>
              
<td>StrSubstitutor</td>
              
<td>The StrSubstitutor used to replace lookup variables.</td>
            </tr>
          </table>
          
<p>
            The sample below shows how to declare script fields and then reference them in specific components.
            See <a href="appenders.html#ScriptCondition">ScriptCondition</a> for an example of how the
            Script element can be used to embed script code directly in the configuration.
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;ERROR&quot;&gt;
  &lt;Scripts&gt;
    &lt;ScriptFile name=&quot;filter.js&quot; language=&quot;JavaScript&quot; path=&quot;src/test/resources/scripts/filter.js&quot; charset=&quot;UTF-8&quot; /&gt;
    &lt;ScriptFile name=&quot;filter.groovy&quot; language=&quot;groovy&quot; path=&quot;src/test/resources/scripts/filter.groovy&quot; charset=&quot;UTF-8&quot; /&gt;
  &lt;/Scripts&gt;
  &lt;Appenders&gt;
    &lt;List name=&quot;List&quot;&gt;
      &lt;PatternLayout pattern=&quot;[%-5level] %c{1.} %msg%n&quot;/&gt;
    &lt;/List&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Logger name=&quot;TestJavaScriptFilter&quot; level=&quot;trace&quot; additivity=&quot;false&quot;&gt;
      &lt;AppenderRef ref=&quot;List&quot;&gt;
        &lt;ScriptFilter onMatch=&quot;ACCEPT&quot; onMisMatch=&quot;DENY&quot;&gt;
          &lt;ScriptRef ref=&quot;filter.js&quot; /&gt;
        &lt;/ScriptFilter&gt;
      &lt;/AppenderRef&gt;
    &lt;/Logger&gt;
    &lt;Logger name=&quot;TestGroovyFilter&quot; level=&quot;trace&quot; additivity=&quot;false&quot;&gt;
      &lt;AppenderRef ref=&quot;List&quot;&gt;
        &lt;ScriptFilter onMatch=&quot;ACCEPT&quot; onMisMatch=&quot;DENY&quot;&gt;
          &lt;ScriptRef ref=&quot;filter.groovy&quot; /&gt;
        &lt;/ScriptFilter&gt;
      &lt;/AppenderRef&gt;
    &lt;/Logger&gt;
    &lt;Root level=&quot;trace&quot;&gt;
      &lt;AppenderRef ref=&quot;List&quot; /&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;
          </pre></div>
        </section>
        <a name="StructuredDataFilter"></a>
        <section>
<h3><a name="StructuredDataFilter"></a>StructuredDataFilter</h3>
          
<p>
            The StructuredDataFilter is a MapFilter that also allows filtering on the event id, type and message.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">StructuredData Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>keyValuePair</td>
              
<td>KeyValuePair[]</td>
              
<td>One or more KeyValuePair elements that define the key in the map and the value to match on. &quot;id&quot;,
                &quot;id.name&quot;, &quot;type&quot;, and &quot;message&quot; should be used to match on the StructuredDataId, the name
                portion of the StructuredDataId, the type, and the formatted message respectively. If the
                same key is specified more than once then the check for that key will automatically be an &quot;or&quot; since
                a Map can only contain a single value.
              </td>
            </tr>
            
<tr class="a">
              
<td>operator</td>
              
<td>String</td>
              
<td>If the operator is &quot;or&quot; then a match by any one of the key/value pairs will be considered to be
                a match, otherwise all the key/value pairs must match.</td>
            </tr>
            
<tr class="b">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="a">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            As in this configuration, the StructuredDataFilter can be used to log particular events:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;StructuredDataFilter onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot; operator=&quot;or&quot;&gt;
    &lt;KeyValuePair key=&quot;id&quot; value=&quot;Login&quot;/&gt;
    &lt;KeyValuePair key=&quot;id&quot; value=&quot;Logout&quot;/&gt;
  &lt;/StructuredDataFilter&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="ThreadContextMapFilter"></a>
        <section>
<h3><a name="ThreadContextMapFilter_.28or_ContextMapFilter.29"></a>ThreadContextMapFilter (or ContextMapFilter)</h3>
          
<p>
            The ThreadContextMapFilter or ContextMapFilter allows filtering against data elements that are in the
            current context. By default this is the ThreadContext Map.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Context Map Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>keyValuePair</td>
              
<td>KeyValuePair[]</td>
              
<td>One or more KeyValuePair elements that define the key in the map and the value to match on. If the
                same key is specified more than once then the check for that key will automatically be an &quot;or&quot; since
                a Map can only contain a single value.</td>
            </tr>
            
<tr class="a">
              
<td>operator</td>
              
<td>String</td>
              
<td>If the operator is &quot;or&quot; then a match by any one of the key/value pairs will be considered to be
                a match, otherwise all the key/value pairs must match.</td>
            </tr>
            
<tr class="b">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="a">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            A configuration containing the ContextMapFilter might look like:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;ContextMapFilter onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot; operator=&quot;or&quot;&gt;
    &lt;KeyValuePair key=&quot;User1&quot; value=&quot;DEBUG&quot;/&gt;
    &lt;KeyValuePair key=&quot;User2&quot; value=&quot;WARN&quot;/&gt;
  &lt;/ContextMapFilter&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
          
<p>
            The ContextMapFilter can also be applied to a logger for filtering:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;BurstFilter level=&quot;INFO&quot; rate=&quot;16&quot; maxBurst=&quot;100&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
      &lt;ContextMapFilter onMatch=&quot;ACCEPT&quot; onMismatch=&quot;NEUTRAL&quot; operator=&quot;or&quot;&gt;
        &lt;KeyValuePair key=&quot;foo&quot; value=&quot;bar&quot;/&gt;
        &lt;KeyValuePair key=&quot;User2&quot; value=&quot;WARN&quot;/&gt;
      &lt;/ContextMapFilter&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;
  </pre></div>
        </section>
        <a name="ThresholdFilter"></a>
        <section>
<h3><a name="ThresholdFilter"></a>ThresholdFilter</h3>
           
<p>
            This filter returns the onMatch result if the level in the LogEvent is the same or more specific
            than the configured level and the onMismatch value otherwise. For example, if the ThresholdFilter
            is configured with Level ERROR and the LogEvent contains Level DEBUG then the onMismatch value will
            be returned since ERROR events are more specific than DEBUG.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Threshold Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>level</td>
              
<td>String</td>
              
<td>
                A valid Level name to match on.
              </td>
            </tr>
            
<tr class="a">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="b">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            A sample configuration that only allows the event to be written by the appender if the level matches:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;ThresholdFilter level=&quot;TRACE&quot; onMatch=&quot;ACCEPT&quot; onMismatch=&quot;DENY&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </section>
        <a name="TimeFilter"></a>
        <section>
<h3><a name="TimeFilter"></a>TimeFilter</h3>
           
<p>
            The time filter can be used to restrict filter to only a certain portion of the day.
          </p>
          
<table border="0" class="table table-striped"><caption align="top">Time Filter Parameters</caption>
            
            
<tr class="a">
              
<th>Parameter Name</th>
              
<th>Type</th>
              
<th>Description</th>
            </tr>
            
<tr class="b">
              
<td>start</td>
              
<td>String</td>
              
<td>
                A time in HH:mm:ss format.
              </td>
            </tr>
            
<tr class="a">
              
<td>end</td>
              
<td>String</td>
              
<td>
                A time in HH:mm:ss format. Specifying an end time less than the start time will result in no
                log entries being written.
              </td>
            </tr>
            
<tr class="b">
              
<td>timezone</td>
              
<td>String</td>
              
<td>
                The timezone to use when comparing to the event timestamp.
              </td>
            </tr>
            
<tr class="a">
              
<td>onMatch</td>
              
<td>String</td>
              
<td>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.</td>
            </tr>
            
<tr class="b">
              
<td>onMismatch</td>
              
<td>String</td>
              
<td>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is
                DENY.</td>
            </tr>
          </table>
          
<p>
            A sample configuration that only allows the event to be written by the appender from 5:00 to 5:30 am each
            day using the default timezone:
          </p>
          
<div>
<pre class="prettyprint linenums">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;warn&quot; name=&quot;MyApp&quot; packages=&quot;&quot;&gt;
  &lt;Appenders&gt;
    &lt;RollingFile name=&quot;RollingFile&quot; fileName=&quot;logs/app.log&quot;
                 filePattern=&quot;logs/app-%d{MM-dd-yyyy}.log.gz&quot;&gt;
      &lt;TimeFilter start=&quot;05:00:00&quot; end=&quot;05:30:00&quot; onMatch=&quot;ACCEPT&quot; onMismatch=&quot;DENY&quot;/&gt;
      &lt;PatternLayout&gt;
        &lt;pattern&gt;%d %p %c{1.} [%t] %m%n&lt;/pattern&gt;
      &lt;/PatternLayout&gt;
      &lt;TimeBasedTriggeringPolicy /&gt;
    &lt;/RollingFile&gt;
  &lt;/Appenders&gt;
  &lt;Loggers&gt;
    &lt;Root level=&quot;error&quot;&gt;
      &lt;AppenderRef ref=&quot;RollingFile&quot;/&gt;
    &lt;/Root&gt;
  &lt;/Loggers&gt;
&lt;/Configuration&gt;</pre></div>
        </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>
