对于我当前的web开发项目,我正在实现一个后端系统,它将标记错误并自动向管理员发送一封电子邮件,其中包含有关发生的详细信息。捕获错误并使用适当的错误信息生成电子邮件是非常直接的;但是,如果考虑到某些错误类型,特别是当网站经常被访问时,就会出现问题。
考虑以下几个例子:
,我可以使用哪些方法/策略来防止这种情况的发生?(我只对监视脚本生成的错误感兴趣,基础设施问题超出了此解决方案的范围)
我将假设我几乎总是可以使用传递给处理程序设置的错误处理程序回调的一些值的摘要来唯一地识别错误。
第一个也可能是最明显的解决方案是记录在数据库中,只有在电子邮件发生后至少有一段合理的时间才发送电子邮件。这不是理想的方法,尤其是当数据库导致问题时。另一种解决方案是在发生错误时将文件写入磁盘,并检查自上次修改文件以来是否已经过了合理的最短时间。,除了我描述的两种方法之外,还有什么机制可以解决这个问题吗?
发布于 2009-02-11 03:00:41
为什么不简单地允许它们全部发送出去,然后收集并存储在接收端的数据库中。这样,您就可以绕过数据库成为服务器中问题的可能性。
而且,在我看来,一个更大的优势是,你不会任意丢弃有价值的法医数据。后特别分析是非常重要的,任何类型的过滤都会使它变得非常困难,甚至是不可能的。
发布于 2009-02-11 02:59:02
你试过查看像SiteScope这样的监控软件吗?
发布于 2009-02-11 04:17:16
我所做的是监视错误日志,每5分钟发送一次摘要。我想这是因为我的高质量代码(相对于一个不受欢迎的应用程序!),但我并没有太多的麻烦:P -我基本上是从头到尾读取日志文件,解析错误消息,当时间戳<我上次运行作业时停止,然后发送一封简单的电子邮件。
这个效果够好的。但是,如果您使用POST,您可以从将apache访问日志与您的php错误日志关联起来获得有限的信息。我记得我读过一个模块,可以在apache中将帖子记录到文件中,但不记得具体的内容。
但是,如果您愿意使用错误处理程序编写某个地方,这可能是最好的,因为您可以访问更多的信息。ip、会话id (以及任何可能影响设置的用户信息,如分页或其他设置)、函数参数(debug_backtrace或其他任何内容).写每一个错误,只要在新的错误发生时发送消息,或者在错误被确认之后(如果你想写这样的系统)。
https://stackoverflow.com/questions/535240
复制相似问题