Php 实时网站错误管理的最佳实践

Php 实时网站错误管理的最佳实践,php,exception-handling,error-handling,error-log,Php,Exception Handling,Error Handling,Error Log,我正准备第一次推出一个相当大的网站。我已经关闭了php.ini中的所有错误消息,错误消息现在被记录到服务器上的“error_log”文件中 我的问题是,既然错误被记录到了一个文件中,web开发人员了解网站上何时何地出现错误的最佳方法是什么 目前,似乎最好的方法是每天不断检查错误日志文件,但这似乎不是最有效的解决方案。理想情况下,每次发生错误时,我都会收到一封电子邮件(带有错误消息)。如果您能给我任何关于如何控制错误的建议,我将不胜感激 额外信息 在共享服务器(HostMonster)上运行 用P

我正准备第一次推出一个相当大的网站。我已经关闭了php.ini中的所有错误消息,错误消息现在被记录到服务器上的“error_log”文件中

我的问题是,既然错误被记录到了一个文件中,web开发人员了解网站上何时何地出现错误的最佳方法是什么

目前,似乎最好的方法是每天不断检查错误日志文件,但这似乎不是最有效的解决方案。理想情况下,每次发生错误时,我都会收到一封电子邮件(带有错误消息)。如果您能给我任何关于如何控制错误的建议,我将不胜感激

额外信息
在共享服务器(HostMonster)上运行

用PHP编写的网站

如果在过去N小时内没有电子邮件,您可以通过电子邮件发送错误信息。

我以前工作过的地方使用自定义扩展来处理错误记录。它基本上是
插入延迟
错误到带有一些额外信息的数据库中。然后,编写了一个单独的管理工具,可以轻松地搜索、浏览、排序和手动修剪日志表

我建议您不要编写自定义扩展,而是使用
set\u error\u handler
方法,只需写入数据库即可。如果数据库不可用,则写入文件作为备份。这比处理一个大文件和一次过的格式要容易得多


如果你愿意,你也可以每小时给自己发一次邮件,但我不建议你发送更多的内容,否则你会讨厌自己。

如果你不希望出现很多错误,那么“私人”RSS/ATOM提要可能会很好地工作。。。如果你什么都得不到,你不必担心。。。但是,如果您开始获得“更新”,您就会知道存在问题。

PHP中有两个主要函数可以帮助捕获错误和异常。我建议你看一下:

在我们公司,我们使用这些功能处理网站上发生的所有错误,定义我们自己的错误和异常处理方法


出现错误时,会向开发人员团队发送一封电子邮件。

我不知道Hostmonster如何处理日志旋转,但通常您希望监视错误日志文件的大小。如果日志文件的大小突然变大,那么您肯定需要检查一些东西,以便收到一封电子邮件,告诉您日志文件的大小意外变大


除此之外,您可以在周末合并错误日志,并通过电子邮件发送给您自己,并在周末进行调试。如果一个错误一周只发生几次,那么问题可能不太严重。

这里需要注意的一点是,set\u error\u handler()不能处理所有错误类型(来自php.net):以下错误类型不能用用户定义的函数来处理:E\u error、E\u PARSE、E\u CORE\u error、E\u CORE\u WARNING、E\u COMPILE\u error、E\u COMPILE\u WARNING、,大多数E_STRICT都是在调用set_error_handler()的文件中提出的。想要报告有关已损坏的错误报告机制的错误有点自相矛盾,不是吗?谢谢MaxiWheat。如果我要走这条路,那么在每个PHP脚本上,我都需要包含我的自定义错误处理程序,对吗?是的,每个脚本中都需要包含该自定义处理程序。如果您不想麻烦,可以在自动前置文件中使用它,详细信息如下: