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