<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from src/site/xdoc/manual/filters.xml at 2020-02-25
 | 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-02-25<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.13.1</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="../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-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>
