我有一个非常有趣的问题,我想知道是否有人对我有很好的解决方案:
我在日志文件中记录了所有可能的错误。包括异常、致命错误、警告、通知、JS 错误(通过 Ajax 发送)、...
现在,出于调试目的,我也想在 HTML 页面上显示所有这些错误(所以我不需要检查日志文件)。
出于这个原因,我将每个新错误都存储在 Session-Variable 中。当用户看到它时,它就会从会话中删除。
我的问题:
错误/异常的 php-backtrace 包含大量信息。包括像 $_SESSION 这样的全局变量。
而且由于我将所有信息都存储在会话中,因此每次错误后会话大小都会翻倍。(会话中的每个错误消息都包含此错误之前会话的全部内容)
例如:
没有错误:
$_SESSION = array();
第一个错误:
$_SESSION = array(error1=>array("msg"="foo", session=array()));
第二个错误:
$_SESSION = array(error1=>array("msg"="foo", session=array()), error2 => array("msg"="foo2", session = array(error1=>array("msg"="foo", session=array()))));
(这只是一个简化的例子)
在 5 次错误之后,会话已经很大,我无法再从本地服务器加载它(超时)。
我考虑过在 5 或某个深度之后从数组中切割每个元素。像那样。或者是否可以防止php在回溯中存储全局变量?
目前,我没有将跟踪存储在 Session 中,但也许有人知道更好的解决方案,在那里我仍然可以看到基本的跟踪信息