19.4. フィルタ

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

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

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

?>

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

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

特定のライターインスタンスに対してだけフィルタをかけるには、ライターの 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('緊急メッセージ');

?>