フィルタ

フィルタオブジェクトは、ログに書き出されるメッセージをブロックします。

すべてのライターに対するフィルタリング

すべてのライターの前にフィルタをかけるには、任意の数のフィルタを addFilter() メソッドでログオブジェクトに追加します。

  1. $logger = new Zend_Log();
  2.  
  3. $writer = new Zend_Log_Writer_Stream('php://output');
  4. $logger->addWriter($writer);
  5.  
  6. $filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
  7. $logger->addFilter($filter);
  8.  
  9. // ブロックされます
  10. $logger->info('通知メッセージ');
  11.  
  12. // 記録されます
  13. $logger->emerg('緊急メッセージ');

ログオブジェクトにフィルタを追加すると、 フィルタを全て通過したものだけをライターが受け取るようになります。

ライターのインスタンスに対するフィルタリング

特定のライターインスタンスに対してだけフィルタをかけるには、ライターの addFilter() メソッドを使用します。

  1. $logger = new Zend_Log();
  2.  
  3. $writer1 = new Zend_Log_Writer_Stream('/path/to/first/logfile');
  4. $logger->addWriter($writer1);
  5.  
  6. $writer2 = new Zend_Log_Writer_Stream('/path/to/second/logfile');
  7. $logger->addWriter($writer2);
  8.  
  9. // writer2 にのみフィルタをかけます
  10. $filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
  11. $writer2->addFilter($filter);
  12.  
  13. // writer1 には記録され、writer2 からはブロックされます
  14. $logger->info('通知メッセージ');
  15.  
  16. // 両方のライターに記録されます
  17. $logger->emerg('緊急メッセージ');
blog comments powered by Disqus