Filters

Overview

A Filter object blocks a message from being written to the log.

You can add a filter to a specific Writer using addFilter() method of that Writer:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use Zend\Log\Logger;

$logger = new Logger();

$writer1 = new Zend\Log\Writer\Stream('/path/to/first/logfile');
$logger->addWriter($writer1);

$writer2 = new Zend\Log\Writer\Stream('/path/to/second/logfile');
$logger->addWriter($writer2);

// add a filter only to writer2
$filter = new Zend\Log\Filter\Priority(Logger::CRIT);
$writer2->addFilter($filter);

// logged to writer1, blocked from writer2
$logger->info('Informational message');

// logged by both writers
$logger->emerg('Emergency message');

Available filters

The Zend\Log\Filter available are:

  • Priority, filter logging by $priority. By default, it will accept any log event whose priority value is less than or equal to $priority.
  • Regex, filter out any log messages not matching the regex pattern. This filter use the preg_match() function of PHP.
  • Timestamp, filters log events based on the time when they were triggered. It can be configured by specifying either idate()-compliant format character along with the desired value, or a full DateTime instance. Appropriate comparison operator must also be supplied in either cases.
  • SuppressFilter, this is a simple boolean filter. Call suppress(true) to suppress all log events. Call suppress(false) to accept all log events.
  • Validator, filter out any log messages not matching the Zend\Validator\Validator object passed to the filter.