PHP和MySQL中的错误监控

时间:2012-09-11 13:35:33

标签: php mysql error-handling

是否有任何报告/日志说明服务器上发生的所有PHP和MySQL错误?使用日期,时间,一些用户信息(浏览器,IP)以及可能发生的错误计数。

此外,每当我的mysql_query失败时,消息都会从包含的文件中删除:

$error_message[0] = 'Error no. 0!';
$error_message[1] = 'Error no. 1!';
$error_message[2] = 'Error no. 2!';

有没有办法监控哪条消息以及何时显示?

5 个答案:

答案 0 :(得分:1)

是的,两者都有错误日志:httpd(或apache)和mysqld。

你可以找到它们:

/var/log/httpd/error_log
/var/log/mysqld.log

(这些路径在您的服务器上可能会略有不同取决于配置文件,例如。您可以指定mysql错误日志文件位置传递--log-error = XXX选项到mysqld)

答案 1 :(得分:1)

您可以通过坚持异常而不是“die()”调用,捕获它们,然后记录来实现。

对此的良好解决方案是。 Sentry - 它以您需要的方式保存信息(发生时间,详细信息,出现次数,记录器/类别,级别等)。

答案 2 :(得分:0)

查看/var/logs/apache//var/logs/httpd/是否是Linux / UNIX服务器。

答案 3 :(得分:0)

“有没有办法监控哪条消息以及何时显示?”

这不是关于主要问题,但是如果您担心暴露的错误消息,您可以简单地禁用在PHP中显示错误,这实际上意味着您也不会向访问者显示MySQL错误(您正在工作)如果您正在谈论Web应用程序,请通过PHP访问MySQL

这可能会有所帮助! :)

答案 4 :(得分:0)

你认为try, catch会起作用吗?你只需要在任何地方使用它来捕获所有可能的错误。

您也可以创建自己的MySQL适配器类,然后将原始函数包装在try, catch块中。如果您可以将其应用于您的代码,那将会更容易,但对于PHP错误,仍然需要覆盖致命错误可能的部分,例如在文件系统上工作,手动try, catch块。

当您要将它们记录在数据库或文件系统上时,显然您也可以记录日期和时间。

PHP manual/Exceptions

注意:您也可以考虑开销!您可以使用try, catch块来查看代码会变慢的程度。