Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-12-2010 12:03:04

chonunca@gmail.com
Nouveau membre
Date d'inscription: 02-09-2009
Messages: 2

[resolu][Zend_Log][1.10.7&1.11.1] writer syslog et formatter ignoré

Bonjour,

J'ai quelque soucis pour formater une sortie writer syslog alors que celle ci fonctionne correctement avec un writer stream.

Voici comment j'initialise les logs (dans le bootstrap):

Code:

$log = new Zend_Log();
$request = Zend_Controller_Front::getInstance()->getRequest();
$log->setEventItem('controller',$request->getControllerName());
$log->setEventItem('action',$request->getActionName());
$log->setEventItem('client_ip',$_SERVER['REMOTE_ADDR']);

$writer = new Zend_Log_Writer_Syslog();
$writer->setApplicationName($request->getModuleName());

$compareWriter = new Zend_Log_Writer_Stream('php://output'); 

$format = '[%priorityName%] - [%timestamp%][%controller%][%action%] - [%client_ip%] %message%'. PHP_EOL;
$formatter = new Zend_Log_Formatter_Simple($format); 

$writer->setFormatter($formatter);
$compareWriter->setFormatter($formatter);

$log->addWriter($writer);
$log->addWriter($debugwriter);

$log->debug('mon message de debug');

ce qui me donne en output exactement le résultat escompté, mais en syslog j'ai ca :

Code:

Dec  1 11:41:02 forum monforum[16155]: mon message de debug

j'ai trouvé que toute la partie placé avant le ":" et après la date/time provenait du openlog effectué dans la méthode _initializeSyslog() de Zend_Log_Writer_Syslog

Code:

openlog($this->_application, LOG_PID, $this->_facility);

Ok donc pour ce coté, c'est "normal" que cela s'affiche, mais pourquoi après le ":" mon formattage n'est pas pris en compte?

j'ai la sensation de louper quelque chose (ou de devenir dingue) quelqu'un pourrait il m'aider?

Dernière modification par chonunca@gmail.com (01-12-2010 21:45:18)

Hors ligne

 

#2 01-12-2010 19:45:02

Intiilapa
Membre
Date d'inscription: 03-02-2009
Messages: 95

Re: [resolu][Zend_Log][1.10.7&1.11.1] writer syslog et formatter ignoré

Le rédacteur Syslog ne prend pas en compte la notion de formateur. La ligne de code que tu as manqué dans le composant est la suivante :

Code:

syslog($priority, $event['message']);

En résumé, il affiche juste le message. Tu dois mettre toutes les informations dans le message ou étendre le rédacteur Syslog pour répondre à ton besoin. J'ajouterai que le rédacteur stream sait écrire dans un fichier, et utiliser un formateur.
As-tu vraiment besoin d'écrire dans le syslog ?

Hors ligne

 

#3 01-12-2010 21:44:38

chonunca@gmail.com
Nouveau membre
Date d'inscription: 02-09-2009
Messages: 2

Re: [resolu][Zend_Log][1.10.7&1.11.1] writer syslog et formatter ignoré

Intiilapa a écrit:

Tu dois mettre toutes les informations dans le message ou étendre le rédacteur Syslog pour répondre à ton besoin.

Merci, c'est ce que j'ai fini par faire, j'ai abandonné l'idée d'utiliser un formatteur.
Et oui, j'était "obligé" d'utiliser syslog (ng) pour des raisons de synchro et filtres avec d'autres plateformes

Merci pour la réponse qui m'a au moins permis de me confirmer qu'utiliser le formatter avec un syslog n'était pas possible (et non pas que je m'y prenais mal) wink

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