2

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

Configure::write('debug', 1);

此设置不会在现场显示任何错误。因此用户/开发人员将无法看到错误。这就是为什么我想做一些东西,它会向我发送一封带有错误标题和错误代码的电子邮件,例如警告消息,notice(8): 就像错误消息。这样如果发生错误,它就不会被忽略。

谢谢。

4

3 回答 3

3

如果每次发生错误时您都会收到一封电子邮件,您将被淹没,直到错误得到修复,这可能不是很有效或生产力。

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

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

于 2010-09-15T14:20:28.550 回答
0

我认为您可以通过覆盖 PHP 的默认错误处理程序来实现这一目标。相关的 PHP 手册页: http: //php.net/manual/en/function.set-error-handler.php

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

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

于 2010-09-15T15:56:22.870 回答
0

我正要发布一个开源项目来做这件事,还有更多。它收集错误,将它们发送到问题跟踪器,检测重复项,将它们变成问题并通过电子邮件发送给员工。

详细信息见https://sourceforge.net/news/?group_id=317819&id=293422,它提到的 0.1.7 版本将在几天后发布。

开源跟踪器位于http://elastik.sourceforge.net/

欢迎任何反馈,谢谢

于 2010-11-16T20:11:56.857 回答