The filter admits two options LevelToMatch and * AcceptOnMatch. If there is an exact match between the value * of the LevelToMatch option and the level of the * {@link LoggerLoggingEvent}, then the {@link decide()} method returns * {@link LoggerFilter::ACCEPT} in case the AcceptOnMatch * option value is set to true, if it is false then * {@link LoggerFilter::DENY} is returned. If there is no match, * {@link LoggerFilter::NEUTRAL} is returned.

* *

* An example for this filter: * * {@example ../../examples/php/filter_levelmatch.php 19} * *

* The corresponding XML file: * * {@example ../../examples/resources/filter_levelmatch.xml 18} * * @version $Revision$ * @package log4php * @subpackage filters * @since 0.6 */ class LoggerFilterLevelMatch extends LoggerFilter { /** * Indicates if this event should be accepted or denied on match * @var boolean */ private $acceptOnMatch = true; /** * The level, when to match * @var LoggerLevel */ private $levelToMatch; /** * @param boolean $acceptOnMatch */ public function setAcceptOnMatch($acceptOnMatch) { $this->acceptOnMatch = LoggerOptionConverter::toBoolean($acceptOnMatch, true); } /** * @param string $l the level to match */ public function setLevelToMatch($l) { if($l instanceof LoggerLevel) { $this->levelToMatch = $l; } else { $this->levelToMatch = LoggerOptionConverter::toLevel($l, null); } } /** * Return the decision of this filter. * * Returns {@link LoggerFilter::NEUTRAL} if the LevelToMatch * option is not set or if there is not match. Otherwise, if there is a * match, then the returned decision is {@link LoggerFilter::ACCEPT} if the * AcceptOnMatch property is set to true. The * returned decision is {@link LoggerFilter::DENY} if the * AcceptOnMatch property is set to false. * * @param LoggerLoggingEvent $event * @return integer */ public function decide(LoggerLoggingEvent $event) { if($this->levelToMatch === null) { return LoggerFilter::NEUTRAL; } if($this->levelToMatch->equals($event->getLevel())) { return $this->acceptOnMatch ? LoggerFilter::ACCEPT : LoggerFilter::DENY; } else { return LoggerFilter::NEUTRAL; } } }