Zend_Log_Writer_Firebug () ne fonctionne pas
-
24-10-2019 - |
Question
Je Firefox 3.6.15, Firebug et addons FirePHP installé, la console activée. J'utilise Zend 1.11. Le code suivant ne montre rien dans la console Firebug.
<?php
require_once('Zend/Log.php');
require_once('Zend/Log/Writer/Firebug.php');
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
$logger->info('info message');
$logger->warn('warning message');
$logger->err('error message');
?>
J'ai essayé avec la bibliothèque de base FirePHP et cela fonctionne -
<?php
require_once('FirePHPCore/FirePHP.class.php');
ob_start();
$firephp = FirePHP::getInstance(true);
$var = array('i'=>10, 'j'=>20);
$firephp->log($var, 'Iterators');
?>
Aimeriez-vous faire fonctionner la chose la Zend. Toute idée?
La solution
Essayez avec lieu
$request = new Zend_Controller_Request_Http(); $response = new Zend_Controller_Response_Http(); $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance(); $channel->setRequest($request); $channel->setResponse($response); //buffering ob_start();
avant que le message de l'enregistreur.
également après
// flushing $channel->flush(); $response->sendHeaders();
Autres conseils
Eh bien, en fait la principale différence entre les 2 fragments de code est que dans le code FirePHP vous tournez le tampon de sortie (avec l'appel obstart();
) et dans le fragment de code Zend Framework vous n'avez pas. La meilleure façon de le faire fonctionner avec Zend est probablement de mettre le drapeau output_buffering
dans php.ini (vous pouvez le faire dans votre définition d'hôte virtuel ou htaccess lorsque vous utilisez apache si vous ne voulez pas le mettre à l'échelle mondiale).
Je viens de l'utiliser dans mon Bootstrap:
protected function _initLogger()
{
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
}
Et puis l'utilisation Zend_Registry::get('logger')->log(...);
et il fonctionne avec output_buffering activée (FF 3.6.15, 1.6.2 Firebug, FirePHP 0.5.0).