【问题标题】:Why Zend_Log_Writer_Firebug can't log messages from dispatchLoopShutdown plugin?为什么 Zend_Log_Writer_Firebug 不能从 dispatchLoopShutdown 插件记录消息?
【发布时间】:2010-09-01 09:44:36
【问题描述】:

为什么可以从 dispatchLoopShutdown 插件发送日志,因为它发生在 Zend_Controller_Response_Abstract->sendResponse() 之前并且尚未发送任何标头?

我在我的引导程序中初始化记录器资源

  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 插件执行点...

【问题讨论】:

    标签: zend-framework plugins zend-log


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      Zend_Log_Writer_Firebug 本身在第一次运行期间注册了他的dispatchLoopShutdown 插件(简称dLSp),所以要让这个记录器在dLSp 中工作,你需要Zend_Log_Writer_FirebugdLSpZend_Wildfire_Channel_HttpHeaders)在dLSp 调用记录器之前已经注册。例如,您可以通过在引导程序中调用 $logger->log('') 来实现此目的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-18
        • 2013-08-26
        • 2021-10-14
        • 1970-01-01
        • 2017-07-09
        • 2015-03-09
        • 1970-01-01
        • 2022-06-17
        相关资源
        最近更新 更多