Programmer's Reference Guide
| フォーマッタ |
フィルタ
フィルタオブジェクトは、ログに書き出されるメッセージをブロックします。
すべてのライターに対するフィルタリング
すべてのライターの前にフィルタをかけるには、任意の数のフィルタを 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('緊急メッセージ');
| フォーマッタ |
Add A Comment
Please do not report issues via comments; use the ZF Issue Tracker.
If you have a JIRA/Crowd account, we suggest you login first before commenting.

Comments
$filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
should be
$filter = new Zend_Log_Filter_Priority(Zend_Log::EMERG);
when used with
$logger->emerg('Emergency Message');
------ also -------
"A Filter object blocks a message from being written to the log."
This was missleading for me as I found it to do the opposite of this.
Would it make more sense if it read:
"When filters are used only filtered priorities will be written to the log."
public function __construct($priority, $operator = NULL)
You can set your own comparison operator, by default its <=
version_compare php function is used to check if log entry passes the comparison and goes to certain writer/s