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 Libraryで試してみましたが、これは機能します -
<?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();
他のヒント
まあ、実際には、コードの2つの断片の主な違いは、FirePhpコードでは、出力バッファリングをオンにしていることです( obstart();
call)and Zend Frameworkコードフラグメントではありません。それをZendで動作させる最も簡単な方法は、おそらく output_buffering
PHP.iniからオンにフラグを立てます(グローバルに設定したくない場合は、Apacheを使用する場合、仮想ホスト定義またはHTACCESSでそれを行うことができます)。
私はこれを私のブートストラップで使用するだけです:
protected function _initLogger()
{
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
}
そして、使用します Zend_Registry::get('logger')->log(...);
また、ON(FF 3.6.15、FireBug 1.6.2、FirePhp 0.5.0)に設定されたoutput_bufferingで動作します。
所属していません StackOverflow