2

getServiceConfig() で次のように FirePHP をセットアップしました。

 use FirePHP as FirePHP;
 use Zend\Log\Logger;
 use Zend\Log\Writer\FirePhp as FirePhpWriter;
 use Zend\Log\Writer\FirePhp\FirePhpBridge;

'logger_firebug' => function($sm) {

    $log = new Logger();
    $writer = new FirePhpWriter(new FirePhpBridge(new FirePHP()));
    $log->addWriter($writer);
    return $log;
 },

しかし、次のようにコントローラーで info 関数を使用しようとすると:

    $loger = $this->getServiceLocator()->get('logger_firebug');     
    $loger->info($this);

内部エラー「NetworkError: 500 Internal Server Error」が表示されます。私がやりたいのは、オブジェクトの var_dump を表示することです。

オブジェクト構造を表示する方法を教えてもらえますか?

ありがとう

4

2 に答える 2

3

のインスタンスを保持し、代わりにメッセージをログに記録するために$firephp = new FirePHP()使用してみてください。$firephp->info($this)

于 2013-01-16T03:42:32.653 に答える
1

このメッセージは、何が起こっているかを正確に示しています。

$message must implement magic__toString()method

リンクを確認すると、が のコンテキストで使用される__toString()たびに、常に自動的に呼び出されることがわかります。では、なぜこのエラー メッセージが表示されるのでしょうか。シンプル: は引数としてa を必要としますが、それを与えようとしていますObjectString$loger->$level()StringObject

これを修正する方法は?それを与えるString

$loger->info(\Zend\Debug\Debug::dump($this, $label=null, false));
// Be sure to either set a $label (string) or set it to null
于 2013-01-11T06:32:29.250 に答える