Programmer's Reference Guide

Formateurs (mise en forme)

Filtres

Un objet Filter bloque les messages avant l'écriture dans le log.

Filtrer pour tous les rédacteurs (Writers)

Pour filtrer avant tous les rédacteurs, vous pouvez ajouter autant de filtres que vous souhaitez à l'objet enregistreur en utilisant la méthode addFilter() :

  1. $logger = new Zend_Log();
  2.  
  3. $redacteur = new Zend_Log_Writer_Stream('php://output');
  4. $logger->addWriter($redacteur);
  5.  
  6. $filtre = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
  7. $logger->addFilter($filtre);
  8.  
  9. // bloqué
  10. $logger->info("Message d'information");
  11.  
  12. // écrit dans le log
  13. $logger->emerg("Message d'urgence");
Quand vous ajoutez un ou plusieurs filtres à l'objet enregistreur, le message doit passer par tous les filtres avant que tous les rédacteurs le reçoive.

Filtrer pour une seule instance de rédacteur

Pour filtrer seulement sur un instance spécifique de rédacteur, employer la méthode addFilter() de ce rédacteur :

  1. $logger = new Zend_Log();
  2.  
  3. $redacteur1 =
  4.     new Zend_Log_Writer_Stream('/chemin/vers/premier/fichierdelog');
  5. $logger->addWriter($redacteur1);
  6.  
  7. $redacteur2 =
  8.     new Zend_Log_Writer_Stream('/chemin/vers/second/fichierdelog');
  9. $logger->addWriter($redacteur2);
  10.  
  11. // ajoute le filter seulement pour le redacteur2
  12. $filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
  13. $redacteur2->addFilter($filter);
  14.  
  15. // écrit par le redacteur1, bloqué par le redacteur2
  16. $logger->info("Message d'information");
  17.  
  18. // écrit dans les 2 logs
  19. $logger->emerg("Message d'urgence");


Formateurs (mise en forme)

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