Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-03-2012 11:59:50

cyrille.t
Membre
Date d'inscription: 16-01-2012
Messages: 15

Zend_Log avec redéfinition du format

Bonjour,

Je lutte avec le composant Zend_Log et les options de redéfinition du format de log pour ajouter l'IP du client.

Dans un premier temps et sans modifier le format, j'arrive bien à envoyer mes LOG en base MySQL :

Code:

[lang=php]
// Configuration des LOG en base MySQL
$parametres = array (
    'host'     => '127.0.0.1',
    'username' => 'toto',
    'password' => '****',
    'dbname'   => '****');
$db = Zend_Db::factory('PDO_MYSQL', $parametres);

//Create log system...
$logger = new Zend_Log($writer = new Zend_Log_Writer_Db($db,'log',array('LOG_priority' => 'priority', 'LOG_msg' => 'message' )));
$logger->info("Message d'information");

Dès que j'essaie de redéfinir le format pour ajouter l'IP du client dans une colonne de ma table de données,

Code:

[lang=php]
// Configuration des LOG en base MySQL
$parametres = array (
    'host'     => '127.0.0.1',
    'username' => 'toto',
    'password' => '****',
    'dbname'   => '****');
$db = Zend_Db::factory('PDO_MYSQL', $parametres);
//Create log system...
$log = new Zend_Log($writer = new Zend_Log_Writer_Db($db,'log',array('LOG_priority' => 'priority', 'LOG_msg' => 'message' )));
// Set parameters to be recorded...
$log->setEventItem( 'IP_cli', $_SERVER['REMOTE_ADDR']);
// Add params to the log journal...
$defaultFormat = Zend_Log_Formatter_Simple::DEFAULT_FORMAT;
$format = '%IP_cli% ' . $defaultFormat;
$writer->setFormatter( new Zend_Log_Formatter_Simple($format));
$log->info("Message d'information");

j'ai l'erreur suivante :

Code:

Fatal error: Uncaught exception 'Zend_Log_Exception' with message 'Zend_Log_Writer_Db does not support formatting' in G:\ZEND\library\Zend\Log\Writer\Db.php:107 Stack trace: #0 G:\mnt\var\www\........\public\index.php(47): Zend_Log_Writer_Db->setFormatter(Object(Zend_Log_Formatter_Simple)) #1 {main} thrown in G:\ZEND\library\Zend\Log\Writer\Db.php on line 107

Please Help smile

Dernière modification par cyrille.t (30-03-2012 12:06:11)

Hors ligne

 

#2 13-04-2012 17:05:49

djeremh
Nouveau membre
Date d'inscription: 13-04-2012
Messages: 1

Re: Zend_Log avec redéfinition du format

Je suis pas un expert de Zend_Log mais si tu regardes dans ta classe Zend_Log_Writer_Db tu verras que ta fonction setFormatter ne fait finalement que retourner une exception.

Code:

[lang=php]
    /**
     * Formatting is not possible on this writer
     *
     * @return void
     * @throws Zend_Log_Exception
     */
    public function setFormatter(Zend_Log_Formatter_Interface $formatter)
    {
        require_once 'Zend/Log/Exception.php';
        throw new Zend_Log_Exception(get_class($this) . ' does not support formatting');
    }

L'erreur que ton code retourne est donc "normale" wink.

As-tu finalement résolu ton problème ?

Dernière modification par djeremh (13-04-2012 17:06:47)

Hors ligne

 

#3 14-04-2012 00:15:42

cyrille.t
Membre
Date d'inscription: 16-01-2012
Messages: 15

Re: Zend_Log avec redéfinition du format

Hum, je vois ... je ne suis pas allé voir dans les library Zend  -_-

... et non, le problème est toujours d'actualité :x
il faudrait que je m'y penche à nouveau ; j'avais trouvé des tickets où la résolution parlait de modif dans les lib Zend, mais pas trop regarder....

une idée ?  smile

Hors ligne

 

#4 05-05-2012 08:44:55

Moosh
Membre
Lieu: Neufvilles/Hainaut/Belgique
Date d'inscription: 04-03-2009
Messages: 18
Site web

Re: Zend_Log avec redéfinition du format

Zend_Log_Formatter ne sert que pour les loggeur en mode ligne
Db est en mode colonne
ajoute ta colonne ip à ce tableau : ,array('LOG_priority' => 'priority', 'LOG_msg' => 'message' )));


--
Moosh // phpFrance // Christophe Gesché // Claroline
Testez mes expériences ZF
http://svn.xp-dev.com/svn/ZF_experiences/ Plus d'info ici http://xp-dev.com/trac/ZF_Experiences/wiki

Hors ligne

 

#5 07-05-2012 11:29:35

cyrille.t
Membre
Date d'inscription: 16-01-2012
Messages: 15

Re: Zend_Log avec redéfinition du format

Merci de ta réponse Moosh,
mais j'ai déjà essayé et sans résultats....

$log = new Zend_Log($writer = new Zend_Log_Writer_Db($db,'log',array('LOG_priority' => 'priority', 'LOG_msg' => 'message', 'IP_cli' => $_SERVER['REMOTE_ADDR'])));

Le champ "IP_Cli" de ma table se remplit à NULL alors qu'un echo $_SERVER['REMOTE_ADDR'] me retourne bien l'IP client.


Une autre idée ??

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