在CakePHP中发生任何错误时发送电子邮件

在CakePHP中发生任何错误时发送电子邮件,php,cakephp,error-handling,error-logging,Php,Cakephp,Error Handling,Error Logging,我在PHP开发中使用CakePHP。我已在core.php文件中将调试模式设置为0 Configure::write('debug', 1); 此设置不会在站点上显示任何错误。因此,用户/开发人员将无法看到错误。这就是为什么我想做一些东西,可以给我发送一封带有错误标题和错误代码的电子邮件,比如警告信息,注意(8):类似错误信息。这样,如果发生错误,它就不会被忽略 谢谢。如果每次发生错误时都收到电子邮件,您将被淹没,直到错误得到修复,这可能不是非常有效或高效 您可以编写一个带有油门控制的错误电子

我在PHP开发中使用CakePHP。我已在core.php文件中将调试模式设置为0

Configure::write('debug', 1);
此设置不会在站点上显示任何错误。因此,用户/开发人员将无法看到错误。这就是为什么我想做一些东西,可以给我发送一封带有错误标题和错误代码的电子邮件,比如警告信息,注意(8):类似错误信息。这样,如果发生错误,它就不会被忽略


谢谢。

如果每次发生错误时都收到电子邮件,您将被淹没,直到错误得到修复,这可能不是非常有效或高效

您可以编写一个带有油门控制的错误电子邮件系统,在该系统中,一旦从CakePHP引发每个错误,就会将其放入数据库(可能键入md5(errortext)),并立即通过电子邮件发送给感兴趣的人。然后,下次遇到完全相同的错误时,系统将看到它已经存在于数据库中(相同的md5),并且不再通过电子邮件发送它


另外,不能将CakePHP配置为将错误记录到日志文件中吗?然后,您可以手动或通过类似的方式检查错误,这将在一个频繁的计划中运行,检查CakePHP日志文件中的特定错误,并在发现任何新错误时通过电子邮件发送摘要。

我认为您可以通过覆盖PHP的默认错误处理程序来实现这一目标。相关PHP手册页面:

基本上,您只需定义一个函数(并告诉脚本在出现错误时调用该函数)。您的定义需要在出现错误时适当地返回false或die()(否则脚本将继续执行)。但是,在该功能中,您可以拨打电话发送电子邮件


请注意,如果您在CakePHP中执行此操作,则可能需要将当前对象作为参数传递,否则您定义的错误处理程序可能无法与其他cake对象很好地配合。

我正要发布一个开源项目来实现这一点,等等。它收集错误,将其发送给问题跟踪者,检测重复项,将其转化为问题并向员工发送电子邮件

详细信息见,其中提到的0.1.7版本将在几天后发布

开源追踪器位于


欢迎任何反馈,谢谢

是的,Fanis,但它已成为某些web应用程序的一项要求。我见过一些网站有这个功能。如果web服务器在linux上,我建议您查看日志检查。在php错误日志中的任何新条目登录后不久,我将使用它向开发团队发送电子邮件。您还可以让它监视其他日志,例如CakePHP应用程序日志。请检查我的答案-我编写了代码,试图通过MD5'处理错误的相关部分来捕获重复错误:-)@James I figure MD5(errno+line+file),或者您是否还包括环境中的其他变量?感谢你的票跟踪器的链接,我实际上是在评估票务系统。明天我来看看。@Fanis我们将生成两个指纹,一个用于检测重复报告,另一个用于检测类似报告请参见GenerateCompleteTechecksum()和generateFingerPrintCheckSum()函数。开发错误报告服务的下一个阶段是收集大量错误并调整这些算法。欢迎您对我们的跟踪器提供任何反馈,谢谢!