# フィルタ

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

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

すべてのライターの前にフィルタをかけるには、任意の数のフィルタを 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('緊急メッセージ');