Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-02-2009 18:32:48

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

[Zend_Log] Comment ça marche ?

Bonjour à tous,

J'essaye de persévérer avec la doc pour ne pas trop vous embêter mais c'est pas toujours évident...
Voilà mon problème, je n'arrive pas vraiment à comprendre comment fonctionne Zend_Log.

Voici ce que j'ai compris:

Code:

Chaque responsabilité de journalisation est distribuée dans différentes classes :
-    Zend_Log, 
est la classe centrale
-    Zend_Log_Writer,
est chargée d’enregistrer les informations dans les journaux
-    Zend_Log_Filter, 
sélectionne les informations à traiter via un ensemble de filtres possibles 
-    Zend_Log_Formatter,
prépare les informations avant de les enregistrer

Pour simplifier Zend_Log est un enregistreur. Il dispose d’un (ou plusieurs) rédacteur (writer) capable de récupérer des informations à stocker. Un rédacteur dispose d’un ou plusieurs filtres pour ne garder qu’une partie des informations et d’un formateur qui prépare les données à enregistrer.

La classe Zend_Log définit différentes priorités comme EMERG, ALERT, etc.
Un nouvel élément s'ajoute avec setEventItem() et le format d'enregistrement se définit via setFormatter.

Voici le début de création d'un fichier de log :

Code:

// Création de l’objet $journal
    $journal = new Zend_Log() ;
    
    // Ajout d’un rédacteur
    $redacteur1  = new Zend_Log_Writer_Stream("php://output") ;
    $journal->addWriter($redacteur1) ;

        // Ajout d'un événement
        $journal->setEventItem('client_ip', $_SERVER['REMOTE_ADDR']);

       // Définition du format du fichier de log
    $format = '[%timestamp%] IP : %client_ip% ' ;
    $formateur = new Zend_Log_Formatter_Simple($format);
    $redacteur1->setFormatter($formateur);

Ce code ne produit strictement rien dans mon fichier de log. Si toutefois j'ajoute " $journal->info('Message :') " alors j'ai bien un petit bout d'informations enregistré (la date avec la chaine "Message :") qui ne contient pas mon IP.

Mes interrogations, comment déclencher un enregistrement lorsqu'un évènement précis se produit et à quel moment intervient le niveau de criticité ?

Merci d'avance

Dernière modification par miboo (26-02-2009 18:34:11)


aka miboo

Hors ligne

 

#2 27-02-2009 09:11:43

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Zend_Log] Comment ça marche ?

Là tu as juste initialiser ton logger. Après pour envoyer un log tu peux par exemple utiliser :

Code:

$journal->log("toto",Zend_Log::DEBUG);

Ensuite si le log que tu viens d'envoyer n'est pas filtré, il est ajouté à ton log  suivant le format que tu as spécifié.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 04-03-2009 11:35:30

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: [Zend_Log] Comment ça marche ?

Merci de ton aide smile


Si je reprends mon code en rajoutant quelques lignes:

Code:

// Création de l’objet $journal
    $journal = new Zend_Log() ;
    
    // Ajout d’un rédacteur
    $redacteur1  = new Zend_Log_Writer_Stream("php://output") ;
    $journal->addWriter($redacteur1) ;

        // Ajout d'un événement
        $journal->setEventItem('client_ip', $_SERVER['REMOTE_ADDR']);

       // Définition du format du fichier de log
    $format = '[%timestamp%] IP : %client_ip% ' ;
    $formateur = new Zend_Log_Formatter_Simple($format);
    $redacteur1->setFormatter($formateur);

    [b]$journal->log("toto", Zend_Log::INFO);[/b]

Effectivement, les informations de date et d'adresse ip s'affiche correctement à l'écran.
En revanche, si je ne définit pas un format précis cela m'affiche "%la_date% INFO (6) : toto".

Pour afficher des informations particulières saisies avec setEventItem il faut nécessaire modifier le format de sortie?

Dernière modification par miboo (04-03-2009 12:43:25)


aka miboo

Hors ligne

 

#4 04-03-2009 11:45:06

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: [Zend_Log] Comment ça marche ?

Deuxième question,

Si je veux faire un fichier de log avec un traitement spécifique. Imaginons que je veuille par exemple afficher un message d'alerte si je dépasse les 10.000 enregistrement dans ma base utilisateurs.

Est-ce que c'est possible et est-ce que cela marche comme ça :

public function detection_ base {

//mon code qui vérifie si la base est pleine et qui renvoie une valeur booléenne

si true alors  $journal -> info ('alerte la base utilisateurs a atteint 10000 utilisateurs', Zend_Log::INFO);

}

Pour être plus clair, je veux savoir comment faire pour que soit associer un message d'information avec un niveau de criticité à un traitement spécifique.

Dernière modification par miboo (20-03-2009 10:51:17)


aka miboo

Hors ligne

 

#5 05-03-2009 17:59:32

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: [Zend_Log] Comment ça marche ?

miboo a écrit:

Deuxième question,

Si je veux faire un fichier de log avec un traitement spécifique. Imaginons que je veuille par exemple afficher un message d'alerte si je dépasse les 10.000 enregistrement dans ma base utilisateurs.

Est-ce que c'est possible et est-ce que cela marche comme ça :

public function detection_ base {

//mon code qui vérifie si la base est pleine et qui renvoie une valeur booléenne

si true alors  $journal -> info ('alerte la base utilisateurs a atteint 10000 utilisateurs', Zend_Log::INFO);

}

Pour être plus clair, je veux savoir comment faire pour que soit associer un message d'information avec un niveau de criticité à un traitement spécifique.

j'ai mis à jour ma question big_smile

Dernière modification par miboo (06-03-2009 02:14:12)


aka miboo

Hors ligne

 

#6 18-03-2009 17:15:29

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: [Zend_Log] Comment ça marche ?

Personne?


aka miboo

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages