为什么日志可以从dispatchLoopShutdown插件发送,因为它发生在Zend_Controller_Response_Abstract-> sendResponse()之前并且尚未发送任何标题?
我在bootstrap中初始化logger资源
protected function _initLogger()
{
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
return $logger;
}
并从任何地方使用
Zend_Registry::get('logger')->debug('test');
它适用于dispatchLoopShutdown插件执行点...
答案 0 :(得分:2)
AFAIK Firebug编写器在dispatchLoopShutdown中有自己的插件,用于在响应中注入数据。您应该添加优先级较低的插件(参见手册)。
答案 1 :(得分:0)
Zend_Log_Writer_Firebug
本身会在首次运行时注册他的dispatchLoopShutdown
插件(简称dLSp
),因此要让此记录器在dLSp
中运行,您需要Zend_Log_Writer_Firebug
在dLSp
中调用记录器之前已经注册了Zend_Wildfire_Channel_HttpHeaders
(dLSp
)。您可以通过在引导程序中调用$logger->log('')
来实现此目的。