Programmer's Reference Guide
| Formatters |
Filters
A Filter object blocks a message from being written to the log.
Filtering for All Writers
To filter before all writers, you can add any number of Filters to a Log object using the addFilter() method:
- $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.
Filtering for a Writer Instance
To filter only on a specific Writer instance, use the addFilter() method of that Writer:
- $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');
| Formatters |
Add A Comment
Please do not report issues via comments; use the ZF Issue Tracker.
If you have a JIRA/Crowd account, we suggest you login first before commenting.

Comments
$filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
should be
$filter = new Zend_Log_Filter_Priority(Zend_Log::EMERG);
when used with
$logger->emerg('Emergency Message');
------ also -------
"A Filter object blocks a message from being written to the log."
This was missleading for me as I found it to do the opposite of this.
Would it make more sense if it read:
"When filters are used only filtered priorities will be written to the log."
public function __construct($priority, $operator = NULL)
You can set your own comparison operator, by default its <=
version_compare php function is used to check if log entry passes the comparison and goes to certain writer/s