Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Dans plusieurs scripts (dont le livre de Julien Pauli), l'objet log est déclaré dans le bootstrap et passé dans le registre. Ensuite nous pouvons le récupérer dans les controllers d'action, par exemple pour gérer les erreurs et exceptions.
Voici mon code dans le bootstrap :
$log = new Zend_Log($writer = new Zend_Log_Writer_Stream(
APPLICATION_PATH . $this->configMain->logfile));
// Ici, si on passe un message au registre cela fonctionne.
// On enregistre l'objet log
Zend_Registry::set('log', $log);
Maintenant, dans le controller errorController:
if (Zend_Registry::isRegistered("log")) {
$log = Zend_Registry::get("log");
//$writer = new Zend_Log_Writer_Stream(APPLICATION_PATH . "/logs/log.log");
//$log->addWriter($writer);
$log->log($errors->exception, $level);
}
Donc ici je récupère bien mon objet $log, mais si je ne lui passe pas à nouveau un rédacteur, ça ne fonctionne pas.
L'objet ne conserve pas le rédacteur déclaré dans le boostrap???
Pourtant dans le script proposé dans les tutos, il ne font pas cette manip...
Merci pour vos réponses à venir...
Hors ligne
- BOOTSTRAP
$now = new Zend_Date(); $fileName = "tmp/logs/logFile-".$now->toString("yyyyMMdd").".log"; $redacteur = new Zend_Log_Writer_Stream($fileName); $logger = new Zend_Log($redacteur); Zend_Registry::set('fichierLog',$logger);
- CONTROLLER
$logger = Zend_Registry::get('fichierLog');
Hors ligne