在FirePHP Logger上显示对象

时间:2013-01-10 18:24:43

标签: zend-framework2

我只是在我的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;
 },

但是当我尝试在控制器上使用信息功能时:

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

它给我一个内部错误“NetworkError:500 Internal Server Error” 我想要做的是显示对象的var_dump。

有人可以帮我展示任何对象结构吗?

由于

2 个答案:

答案 0 :(得分:3)

尝试保留$firephp = new FirePHP()的实例并使用$firephp->info($this)来记录消息。

答案 1 :(得分:1)

此消息告诉您到底发生了什么。

$message must implement magic __toString() method

检查您会注意到的链接,只要在Object的上下文中使用String,就会自动调用__toString()。那么为什么会出现此错误消息?简单:$loger->$level()需要String作为参数,但您试图给它Object

如何解决这个问题?给它一个String

$loger->info(\Zend\Debug\Debug::dump($this, $label=null, false));
// Be sure to either set a $label (string) or set it to null