Php FireHP在与Zend_Log_Writer_Firebug一起使用时不显示额外功能

Php FireHP在与Zend_Log_Writer_Firebug一起使用时不显示额外功能,php,zend-framework,firebug,firephp,zend-log,Php,Zend Framework,Firebug,Firephp,Zend Log,我已经用Zend框架开发了很多年(从0.9开始),这个问题一直困扰着我 我想借助FireHP和Zend Framework 1.11应用程序在FireBug控制台上输出消息。我已将Firebug配置为默认的application.ini文件: resources.log.firebug.writerName = "Firebug" resources.log.firebug.filterName = "Priority" resources.log.firebug.filterParams.pr

我已经用Zend框架开发了很多年(从0.9开始),这个问题一直困扰着我

我想借助FireHP和Zend Framework 1.11应用程序在FireBug控制台上输出消息。我已将Firebug配置为默认的application.ini文件:

resources.log.firebug.writerName = "Firebug"
resources.log.firebug.filterName = "Priority"
resources.log.firebug.filterParams.priority = 7
我现在可以在FireBug中看到消息,例如在IndexController中,通过调用无效操作或显式抛出异常,如

throw new Exception("This is my error message", E_USER_ERROR);
这将导致默认ErrorController处理异常并显示堆栈跟踪和请求参数:

默认ErrorController还将自动将所有消息记录到FireBug:

但是,正如您所看到的,虽然FireBug完全可以做到这一点,但是没有显示堆栈跟踪或请求参数等额外信息,这可以在访问主页时的FireBug屏幕截图中看到:

正如文档中所述,Zend_Log_Writer_Firebug将忽略所有内容,使用这些内容,可以将defaultPriorityStyle设置为TRACE或类似的内容

现在我的问题是:是否有任何方法可以配置Zend Framework,以便在不必使用Zend Framework本身附带的工具的情况下发送额外的数据(如上图所示)


最好的问候和感谢提前

我认为使用zf create project生成的默认错误控制器无法实现您所说的,因为所涉及的行是

// Log exception, if logger available
if ($log = $this->getLog()) {
    $log->log($this->view->message, $priority, $errors->exception);
    $log->log('Request Parameters', $priority, $errors->request->getParams());
}
i、 e.默认错误控制器仅记录消息、优先级和异常,firebug编写器按您所示的方式对其进行格式化

要实现您所说的,您应该破解
Zend\u Log\u Writer\u Firebug
类,使用Firebug控制台显示stacktrace,或者您可以使用添加到记录器中的自定义格式化程序类

我做了类似的事情,创建了一个邮件记录器,它在邮件消息中显示格式化的异常stacktrace,并在生产中使用它来获取通过电子邮件发送的异常的格式化日志。你可以找到它,你可以找到它的用法

此外,您还可以看到一个关于如何使用类中的ZF类来使用firebug控制台的示例


那么回答你的问题,,不,如果不将一些自定义类和它作为编写器或格式化程序写入日志对象,您就无法做到这一点,也不能仅通过使用
应用程序.ini
文件来做到这一点。

我认为,使用从
zf create project
生成的默认错误控制器无法实现您所说的内容,因为所涉及的行就是这些行

// Log exception, if logger available
if ($log = $this->getLog()) {
    $log->log($this->view->message, $priority, $errors->exception);
    $log->log('Request Parameters', $priority, $errors->request->getParams());
}
i、 e.默认错误控制器仅记录消息、优先级和异常,firebug编写器按您所示的方式对其进行格式化

要实现您所说的,您应该破解
Zend\u Log\u Writer\u Firebug
类,使用Firebug控制台显示stacktrace,或者您可以使用添加到记录器中的自定义格式化程序类

我做了类似的事情,创建了一个邮件记录器,它在邮件消息中显示格式化的异常stacktrace,并在生产中使用它来获取通过电子邮件发送的异常的格式化日志。你可以找到它,你可以找到它的用法

此外,您还可以看到一个关于如何使用类中的ZF类来使用firebug控制台的示例


那么回答你的问题,,不,如果不编写一些自定义类并将其作为编写器或格式化程序写入日志对象,您就无法做到这一点,也不能仅通过使用
application.ini
文件来做到这一点。

谢谢您的想法-我实际上可以编辑错误控制器,并可以将日志的额外信息添加到第一个参数中-但这样我就不会得到正确的结果需要扩展或折叠条目的功能。我还使用了格式化程序,通过增强Logger类,我可能能够得到我想要的结果。但是,我觉得Zend_Log_Writer_Firebug应该使用FireHP/Firebug作为默认值的可能性。感谢您的想法-我实际上可以编辑错误控制器,并且可以将日志的额外信息添加到第一个参数中-但是这样我就无法获得想要的扩展或折叠条目的功能。我还使用了格式化程序,通过增强Logger类,我可能能够得到我想要的结果。但是,我觉得Zend_Log_Writer_Firebug应该使用FireHP/Firebug作为默认值的可能性。