フィルタオブジェクトは、ログに書き出されるメッセージをブロックします。
すべてのライターの前にフィルタをかけるには、任意の数のフィルタを
addFilter()
メソッドでログオブジェクトに追加します。
$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()
メソッドを使用します。
$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('緊急メッセージ');