AndFilter Class Reference

A filter that 'and's the results of any number of contained filters together. More...

Inherits Filter.

## Public Member Functions

| AndFilter ()
void | addFilter (const log4cxx::spi::FilterPtr &filter)
void | setAcceptOnMatch (bool acceptOnMatch)
FilterDecision | decide (const spi::LoggingEventPtr &event) const
Public Member Functions inherited from Filter
| Filter ()
void | addRef () const
void | releaseRef () const
log4cxx::spi::FilterPtr | getNext () const
void | setNext (const log4cxx::spi::FilterPtr &newNext)
void | activateOptions (log4cxx::helpers::Pool &p)
| Usually filters options become active when set. More...
void | setOption (const LogString &option, const LogString &value)
| Set `option` to `value`. More...
Public Member Functions inherited from OptionHandler
virtual | ~OptionHandler ()
Public Member Functions inherited from Object
virtual const helpers::Class & | getClass () const
virtual | ~Object ()
virtual bool | instanceof (const Class &clazz) const =0
virtual const void * | cast (const Class &clazz) const =0
Public Member Functions inherited from ObjectImpl
| ObjectImpl ()
virtual | ~ObjectImpl ()

## Additional Inherited Members

Public Types inherited from Filter
enum | FilterDecision { DENY = -1, NEUTRAL = 0, ACCEPT = 1 }
Static Public Member Functions inherited from Object
static const helpers::Class & | getStaticClass ()
static const log4cxx::helpers::ClassRegistration & | registerClass ()
Protected Attributes inherited from ObjectImpl
unsigned int volatile | ref

## Detailed Description

A filter that 'and's the results of any number of contained filters together.

For the filter to process events, all contained filters must return Filter::ACCEPT.

If the contained filters do not return Filter::ACCEPT, Filter::NEUTRAL is returned.

If acceptOnMatch is set to true, Filter::ACCEPT is returned. If acceptOnMatch is set to false, Filter::DENY is returned.

Here is an example config that will accept only events that contain BOTH a DEBUG level AND 'test' in the message:

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <filter class="org.apache.log4j.filter.AndFilter"> <filter class="org.apache.log4j.filter.LevelMatchFilter"> <param name="levelToMatch" value="DEBUG" /> <param name="acceptOnMatch" value="true" /> </filter> <filter class="org.apache.log4j.filter.StringMatchFilter"> <param name="stringToMatch" value="test" /> <param name="acceptOnMatch" value="true" /> </filter> <param name="acceptOnMatch" value="false"/> </filter> <filter class="org.apache.log4j.filter.DenyAllFilter"/> <layout class="org.apache.log4j.SimpleLayout"/> </appender>

To accept all events EXCEPT those events that contain a DEBUG level and 'test' in the message: change the AndFilter's acceptOnMatch param to false and remove the DenyAllFilter

NOTE: If you are defining a filter that is only relying on logging event content (no external or filter-managed state), you could opt instead to use an ExpressionFilter with one of the following expressions:

LEVEL == DEBUG && MSG ~= 'test' or ! ( LEVEL == DEBUG && MSG ~= 'test' )

## Constructor & Destructor Documentation

AndFilter | ( |  | ) |

## Member Function Documentation

void addFilter | ( | const log4cxx::spi::FilterPtr & | filter | ) |

FilterDecision decide | ( | const spi::LoggingEventPtr & | event | ) | const

virtual

If the decision is `DENY`, then the event will be dropped. If the decision is `NEUTRAL`, then the next filter, if any, will be invoked. If the decision is ACCEPT then the event will be logged without consulting with other filters in the chain.

Parameters

  event | The LoggingEvent to decide upon.

Returns
  The decision of the filter.

Implements Filter.

void setAcceptOnMatch | ( | bool | acceptOnMatch | ) |

The documentation for this class was generated from the following file:

- andfilter.h