Programmer's Reference Guide

Formatter

Filter

Ein Filter Objekt blockiert eine Nachricht damit diese nicht in das Log geschrieben wird.

Filter für alle Writer

Um vor allen Writern zu filtern, kann eine beliebige Anzahl von Filtern zu einem Log Objekt hinzugefügt werden indem die addFilter() Methode verwendet wird:

  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. // Blockiert
  10. $logger->info('Informative Nachricht');
  11.  
  12. // Gelogged
  13. $logger->emerg('Notfall Nachricht');

Wenn ein oder mehrere Filter zu einem Log Objekt hinzugefügt werden, muß die Nachricht durch alle Filter hindurch bevor irgendein Filter sie empfängt.

Filtern für eine Writer Instanz

Um nur auf eine definierte Writer Instanz zu filtern, muß die addFilter() Methode dieses Writer's verwendet werden:

  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. // Einen Filter nur zu Writer2 hinzufügen
  10. $filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
  11. $writer2->addFilter($filter);
  12.  
  13. // Geloggt von Writer1, Blockiert von Writer2
  14. $logger->info('Informative Nachricht');
  15.  
  16. // Geloggt von beiden Writern
  17. $logger->emerg('Notfall Nachricht');

Formatter

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