在任何网页浏览结束时获取堆栈跟踪

时间:2014-02-19 09:42:32

标签: php apache

我从stackoverflow中发现了这两个很好的东西,它打印出堆栈跟踪。

debug_print_backtrace();

// or

$e = new Exception;
var_dump($e->getTraceAsString());

但是这只会在我调用时打印跟踪(意味着只打印特定功能)。我的目的是每当从我的应用程序浏览任何页面时都有这个堆栈跟踪。

例如,当我从我的应用程序浏览/product页面时,我想要为此操作调用的函数。其他页面也是如此。更准确地说,在动作结束时留下痕迹。我需要这个,因为函数调用的数量因参数和数据库值而异。

有没有办法在一个地方使用上面的代码,以便在动作完成后从任何地方反映出来?或者apache的任何配置都可以帮我吗?或者任何其他方法来实现这个目标?

1 个答案:

答案 0 :(得分:0)

这是一个复杂的问题,因为PHP没有提供列出给定脚本的所有函数调用的功能。您可以尝试使用XHProfWebgrind记录所有函数调用,但请记住,您将没有函数参数。如果这还不够,你可以实现一个日志记录功能,但它需要包含在每个函数调用中......

请进一步阅读有关使用xdebug的应用程序跟踪:http://devzone.zend.com/1135/tracing-php-applications-with-xdebug/