在CakePHP系统中记录PHP致命错误
我需要记录我的网站致命错误 我通常会检查error.log和debug.log文件中是否存在CakePHP错误。在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的权限。我可以要求管理员改变这一点,但似乎每次我需要改变时我都需要问他:)我还担心性能。日志错误是否会降低性能 所以我发现我可以在我的脚本中放入以下两行来记录错误,并在需要
但是我发现与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:-如果你不能升级,你需要使用你在问题中链接的我的“注册关闭”功能。