0

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

此外,每次我的mysql_query失败死亡消息都会从包含的文件中提取:

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

有没有办法监控显示的消息和时间?

4

5 回答 5

1

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

您可以在以下位置找到它们:

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

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

于 2012-09-11T13:37:37.470 回答
1

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

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

于 2012-09-11T13:41:18.690 回答
0

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

于 2012-09-11T13:38:15.233 回答
0

“有没有办法监控显示的消息和时间?”

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

这可能会有所帮助!:)

于 2012-09-11T13:43:22.363 回答
0

你认为try, catch那会奏效吗?您只需要在任何地方使用它即可捕获所有可能的错误。

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

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

PHP手册/例外

注意:您也可以考虑开销!try, catch您可以进行基准测试以查看使用块后您的代码会变慢多少。

于 2012-09-11T20:22:30.800 回答