Zend_Log_Writer_Firebug () non funziona
-
24-10-2019 - |
Domanda
Ho Firefox 3.6.15, Firebug e FirePHP addons installati, console abilitato. Sto usando Zend 1.11. Il seguente codice non mostra nulla nella 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');
?>
Ho provato con la libreria di base FirePHP e funziona questo -
<?php
require_once('FirePHPCore/FirePHP.class.php');
ob_start();
$firephp = FirePHP::getInstance(true);
$var = array('i'=>10, 'j'=>20);
$firephp->log($var, 'Iterators');
?>
vorrebbe ottenere la cosa Zend lavoro. Qualche idea?
Soluzione
Prova con posto
$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();
prima di Message Logger.
anche dopo
// flushing $channel->flush(); $response->sendHeaders();
Altri suggerimenti
Beh, in realtà la differenza principale tra i 2 frammenti di codice è che nel codice FirePHP si sta accendendo il buffer di uscita (con la chiamata obstart();
) e nel frammento di codice Zend Framework non lo fai. Il modo più semplice per farlo lavorare con Zend è probabilmente quello di impostare il flag output_buffering
in php.ini su On (si può fare nella vostra definizione di host virtuale o .htaccess utilizzando apache se non si desidera impostare globalmente).
Ho appena usare questo nella mia Bootstrap:
protected function _initLogger()
{
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
}
E poi l'uso Zend_Registry::get('logger')->log(...);
e funziona con output_buffering su On (FF 3.6.15, Firebug 1.6.2, FirePHP 0.5.0).