是否有任何报告/日志说明服务器上发生的所有PHP和MySQL错误?使用日期,时间,一些用户信息(浏览器,IP)以及可能发生的错误计数。
此外,每当我的mysql_query
失败时,消息都会从包含的文件中删除:
$error_message[0] = 'Error no. 0!';
$error_message[1] = 'Error no. 1!';
$error_message[2] = 'Error no. 2!';
有没有办法监控哪条消息以及何时显示?
答案 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
块。
当您要将它们记录在数据库或文件系统上时,显然您也可以记录日期和时间。
注意:您也可以考虑开销!您可以使用try, catch
块来查看代码会变慢的程度。