0

Zend_Controller_Response_Abstract->sendResponse() の前に発生し、ヘッダーがまだ送信されていないため、dispatchLoopShutdown プラグインからログを送信できるのはなぜですか?

ブートストラップでロガー リソースを初期化します

  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 プラグインの実行ポイントまで動作します...

4

2 に答える 2

2

私の知る限り、Firebug ライターは、応答にデータを挿入するために、dispatchLoopShutdown に独自のプラグインを持っています。優先度の低いプラグインを追加する必要があります (マニュアルを参照)。

于 2010-09-01T10:21:47.043 に答える
0

Zend_Log_Writer_Firebugそれ自体が最初の実行中に彼のdispatchLoopShutdownプラグインを (dLSp略して) 登録するので、このロガーを で機能させるには、 でロガーを呼び出す前に( ) がすでに登録されdLSpている必要がありZend_Log_Writer_Firebugます。たとえば、ブートストラップを呼び出すことでこれを実現できますdLSpZend_Wildfire_Channel_HttpHeadersdLSp$logger->log('')

于 2010-09-23T05:43:55.470 に答える