Zend_log_writer_firebug () не работает
-
24-10-2019 - |
Вопрос
У меня есть Firefox 3.6.15, установленные дополнения Firebug и Firephp, включенная консоль. Я использую Zend 1.11. Следующий код не показывает ничего в консоли 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');
?>
Я попробовал с библиотекой Firephp Core, и это работает -
<?php
require_once('FirePHPCore/FirePHP.class.php');
ob_start();
$firephp = FirePHP::getInstance(true);
$var = array('i'=>10, 'j'=>20);
$firephp->log($var, 'Iterators');
?>
Хотел бы заставить Zend работать. Есть идеи?
Решение
Попробуйте с местом
$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();
Перед сообщением регистрации.
Также после
// flushing $channel->flush(); $response->sendHeaders();
Другие советы
Что ж, на самом деле основное различие между двумя фрагментами кода заключается в том, что в коде FIREPHP вы включаете буферизацию вывода (с obstart();
Позвоните) и в фрагменте кода Zend Framework вы не делаете. Самый простой способ заставить его работать с Zend, вероятно, - установить output_buffering
Флаг в php.ini to
Я просто использую это в своей начальной загрузке:
protected function _initLogger()
{
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
}
А затем используйте Zend_Registry::get('logger')->log(...);
и он работает с output_buffering, установленным на ON (FF 3.6.15, Firebug 1.6.2, Firephp 0.5.0).