Programmer's Reference Guide

Formatters

过滤器

一个Filter对象阻塞一个消息被写入到日志.

对所有Writer过滤

要在所有writer之前过滤消息,你可以使用addFilter()方法添加任意数量的Filter到Log对象:

$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);

// blocked
$logger->info('Informational message');

// logged
$logger->emerg('Emergency message');

        
当你添加一个或多个Filter到Log对象后,消息在任何Writer接收之前必须通过所有的Filter.

过滤一个Writer实例

要在一个特定的Writer上进行消息过滤,使用该Writer对象的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);

// add a filter only to writer2
$filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
$writer2->addFilter($filter);

// logged to writer1, blocked from writer2
$logger->info('Informational message');

// logged by both writers
$logger->emerg('Emergency message');

        


Formatters

Comments

Correct me if I am wrong but in the above examples of adding filters, the code:

$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."



* @param string $operator Comparison operator
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

+ 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.

  • BBCode is allowed in the comment markup

  • Select a Version

    Languages Available

    Components

    Search the Manual