Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CakePHP系统中记录PHP致命错误_Cakephp_Logging_Cakephp 2.0_Php - Fatal编程技术网

在CakePHP系统中记录PHP致命错误

在CakePHP系统中记录PHP致命错误,cakephp,logging,cakephp-2.0,php,Cakephp,Logging,Cakephp 2.0,Php,我需要记录我的网站致命错误 我通常会检查error.log和debug.log文件中是否存在CakePHP错误。 但是我发现与PHP相关的致命错误没有记录在某个地方。 并对其进行了讨论 我检查了php.ini。它有以下几行: log_errors = On ;error_log = filename 我没有更改php.ini的权限。我可以要求管理员改变这一点,但似乎每次我需要改变时我都需要问他:)我还担心性能。日志错误是否会降低性能 所以我发现我可以在我的脚本中放入以下两行来记录错误,并在需要

我需要记录我的网站致命错误

我通常会检查error.log和debug.log文件中是否存在CakePHP错误。
但是我发现与PHP相关的致命错误没有记录在某个地方。
并对其进行了讨论

我检查了php.ini。它有以下几行:

log_errors = On
;error_log = filename
我没有更改php.ini的权限。我可以要求管理员改变这一点,但似乎每次我需要改变时我都需要问他:)我还担心性能。日志错误是否会降低性能

所以我发现我可以在我的脚本中放入以下两行来记录错误,并在需要时更改文件夹或文件名

ini_set("log_errors", 1);
ini_set("error_log", "/path/to/php-error.log");

所以我想知道在我的代码里把这些行放在哪里?我应该把它放在AppController::beforeFilter中吗?或者在CakePHP 2配置中有更好的位置/解决方案吗?

register\u shutdown\u function()


寄存器关闭函数()

这是一条旧线。 同时,对于cake 2.x,所有错误都记录在生产模式中,因此也会记录致命错误

触发一个并检查您的
/tmp/logs/error.log

但通过查看核心代码,您很容易发现: 这是一条旧线。 同时,对于cake 2.x,所有错误都记录在生产模式中,因此也会记录致命错误

触发一个并检查您的
/tmp/logs/error.log

但通过查看核心代码,您很容易发现:
有框架定义的配置设置。你可以使用这个类


这是一个链接,它将帮助您实现同样的功能。

有框架定义的配置设置。你可以使用这个类


这是一个链接,它将帮助您实现同样的目标。

据我所知,您不能在PHP中记录致命错误,因为致命错误对PHP解释器来说是致命的。您的ini_set方法也有潜在的缺陷,因为它在加载这些行所在的文件之前不会捕获任何错误,因此不会正确记录早死。apache是否也会记录这些错误?如果致命错误发生在任何包含的文件(即不是第一个请求文件)中使用
[set\u error\u handler()]记录日志应该相当容易(http://php.net/manual/en/function.set-error-handler.php)
。另一方面,无法处理解析/编译错误。据我所知,您不能在PHP中记录致命错误,因为致命错误对PHP解释器来说是致命的。您的ini_set方法也有潜在的缺陷,因为它在加载这些行所在的文件之前不会捕获任何错误,因此不会正确记录早死。apache是否也会记录这些错误?如果致命错误发生在任何包含的文件(即不是第一个请求文件)中使用
[set\u error\u handler()]记录日志应该相当容易(http://php.net/manual/en/function.set-error-handler.php)
。另一方面,无法处理分析/编译错误。很遗憾,error.log中没有记录致命错误。在浏览器窗口中看到致命错误后,我多次检查该文件。您是否使用最新的2.x?无论如何它都能工作-哦,它可能>=2.2:-如果你不能升级,你需要使用你在问题中链接的我的“注册关闭”功能。不幸的是,error.log中没有记录致命错误。在浏览器窗口中看到致命错误后,我多次检查该文件。您是否使用最新的2.x?无论如何,它都能工作-哦,它可能>=2.2:-如果你不能升级,你需要使用你在问题中链接的我的“注册关闭”功能。