フィルタオブジェクトは、ログに書き出されるメッセージをブロックします。
すべてのライターの前にフィルタをかけるには、任意の数のフィルタを
addFilter()
メソッドでログオブジェクトに追加します。
<?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); // ブロックされます $logger->info('通知メッセージ'); // 記録されます $logger->emerg('緊急メッセージ'); ?>
ログオブジェクトにフィルタを追加すると、 すべてのフィルタを通貨したものだけをライターが受け取るようになります。
特定のライターインスタンスに対してだけフィルタをかけるには、ライターの
addFilter
メソッドを使用します。
<?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); // writer2 にのみフィルタをかけます $filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT); $writer2->addFilter($filter); // writer1 には記録され、writer2 からはブロックされます $logger->info('通知メッセージ'); // 両方のライターに記録されます $logger->emerg('緊急メッセージ'); ?>