24.4. Filters

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

24.4.1. Filtering for All Writers

To filter before all writers, you can add any number of Filters to a Log object using the addFilter() method:

<?php
$logger = new Zend_Log();

$writer = new Zend_Log_Writer_Stream('php://output');
$logger->addWriter($writer);

$filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
$logger->addFilter($filter);

// blocked
$logger->info('Informational message');

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

When you add one or more Filters to the Log object, the message must pass through all of the Filters before any Writers receives it.

24.4.2. Filtering for a Writer Instance

To filter only on a specific Writer instance, use the addFilter method of that Writer:

<?php
$logger = new Zend_Log();

$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(Zend_Log::CRIT);
$writer2->addFilter($filter);

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

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

    Поддержать сайт на родительском проекте КГБ