Pas*_*sta 16 error-handling zend-framework
我们在Zend Framework(v1)中构建了一个应用程序,并且在设置错误报告和日志记录方面没有做太多工作.有没有办法在没有太多代码更改的情况下获得某种级别或错误报告?是否有可用的ErrorHandler插件?
基本要求是记录控制器内发生的错误,丢失控制器,格式错误的URL等.
我还希望能够在我的控制器中记录错误.将在这里使用错误控制器,帮助我识别和记录我的控制器中的错误?如何以最小的变化做到最好?
Tra*_*vis 32
我会使用Zend_Log并使用以下策略.
如果您在应用程序中使用Zend_Application,则有一个用于记录的资源.您可以在此处阅读有关资源的更多信息
我的建议是在写入数据库或日志文件流之间进行选择.如果您打算使用某种类型的Web界面,请将您的日志写入数据库,如果不是平面文件就可以.
您可以使用此简单示例将日志记录设置为文件
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../data/logs/application.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority = 4
Run Code Online (Sandbox Code Playgroud)
此外,我建议将严重错误发送到您的开发团队定期检查的电子邮件帐户.我工作的公司将它们发送到errors@companyname.com,然后转发给生产站点的所有开发人员.
根据我的理解,你无法通过工厂设置邮件编写器,所以资源对你没有任何好处,但你可以在你的ErrorController或Bootstrap中设置它.
$mail = new Zend_Mail();
$mail->setFrom('errors@example.org')
->addTo('project_developers@example.org');
$writer = new Zend_Log_Writer_Mail($mail);
// Set subject text for use; summary of number of errors is appended to the
// subject line before sending the message.
$writer->setSubjectPrependText('Errors with script foo.php');
// Only email warning level entries and higher.
$writer->addFilter(Zend_Log::WARN);
$log = new Zend_Log();
$log->addWriter($writer);
// Something bad happened!
$log->error('unable to connect to database');
// On writer shutdown, Zend_Mail::send() is triggered to send an email with
// all log entries at or above the Zend_Log filter level.
Run Code Online (Sandbox Code Playgroud)
您需要对上面的示例做一些工作,但最佳解决方案是获取引导程序文件中的日志资源,并将电子邮件编写器添加到其中,而不是创建第二个日志实例.
| 归档时间: |
|
| 查看次数: |
18012 次 |
| 最近记录: |