Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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):
$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 :
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
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
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 :
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
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)
Hors ligne
Pages: 1