对于大多数生产站点,您想知道何时出现错误尽快。我的问题是如何最好地获取这些信息。从PHP中的生产站点获取错误的最佳方式是什么?
通常情况下,最好是在电子邮件中获取错误,因为我不会每天坐在一起看错误日志,直到出现错误 - 这是不可能的,因为我有20个或更多生产站点不同的服务器这些错误可能是任何事情,包括未设置的变量,接收到的无效数据或查询错误。
此刻我按照PHPs websites, found here的例子。因此,它会创建一个文本字符串以及随后通过电子邮件发送的XML文件。我稍微修改了这一点以保留所有错误,直到脚本结束,然后发送附带XML文件的电子邮件。 (由于循环中的错误,我已经让几台邮件服务器发送了超过500,000封电子邮件。)大多数情况下,这是完美的。 (我也创建了一个对象来执行所有错误处理。)
当存在大量数据以处理wddx_serialize_value()
时,会出现此问题。然后,如果有多个错误,那么它最终会使用大量内存,大部分时间都超过脚本允许使用的时间。
因此,我在添加gzcompress()
之前将其存储在变量中。这有帮助,但是如果数据量非常大,它仍然用完内存。 (在最近的情况下,它想要使用2GB左右)。
我想知道还有什么其他的解决方案,或者你如何修改它使它工作?
那么几个要求:
- 它必须能够不仅仅是错误消息的详细发送给我,不应该让我登录到服务器弄清楚发生了什么(所以我可以检查时移动并确定它是否是紧急事项)
- 需要限制发送的电子邮件数量。最好的仍然是1
- 它需要登录到一个文件中按正常
编辑:我需要相关的错误等信息,而不仅仅是错误字符串。通常我发现重现错误几乎是不可能的,因为它是由用户输入引起的,除非获得更多信息,否则我不知道。我尽了最大的努力去提供信息错误,但你永远不知道用户如何使用系统或他们将要放入什么废话数据。因此,我需要的不仅仅是错误文本/字符串。
编辑2:无法将错误记录到数据库,因为我知道数据库可能不在那里。需要几乎可以保证运行的东西。此外,这些网站并不都是1台服务器,我经常无法访问服务器上的cron(愚蠢的托管公司)。