为什么Zend_Log_Writer_Firebug无法从dispatchLoopShutdown插件中记录消息?

时间:2010-09-01 09:44:36

标签: zend-framework plugins zend-log

为什么日志可以从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插件执行点...

2 个答案:

答案 0 :(得分:2)

AFAIK Firebug编写器在dispatchLoopShutdown中有自己的插件,用于在响应中注入数据。您应该添加优先级较低的插件(参见手册)。

答案 1 :(得分:0)

Zend_Log_Writer_Firebug本身会在首次运行时注册他的dispatchLoopShutdown插件(简称dLSp),因此要让此记录器在dLSp中运行,您需要Zend_Log_Writer_FirebugdLSp中调用记录器之前已经注册了Zend_Wildfire_Channel_HttpHeadersdLSp)。您可以通过在引导程序中调用$logger->log('')来实现此目的。