我从stackoverflow中发现了这两个很好的东西,它打印出堆栈跟踪。
debug_print_backtrace();
// or
$e = new Exception;
var_dump($e->getTraceAsString());
但是这只会在我调用时打印跟踪(意味着只打印特定功能)。我的目的是每当从我的应用程序浏览任何页面时都有这个堆栈跟踪。
例如,当我从我的应用程序浏览/product
页面时,我想要为此操作调用的函数。其他页面也是如此。更准确地说,在动作结束时留下痕迹。我需要这个,因为函数调用的数量因参数和数据库值而异。
有没有办法在一个地方使用上面的代码,以便在动作完成后从任何地方反映出来?或者apache
的任何配置都可以帮我吗?或者任何其他方法来实现这个目标?
答案 0 :(得分:0)
这是一个复杂的问题,因为PHP没有提供列出给定脚本的所有函数调用的功能。您可以尝试使用XHProf或Webgrind记录所有函数调用,但请记住,您将没有函数参数。如果这还不够,你可以实现一个日志记录功能,但它需要包含在每个函数调用中......
请进一步阅读有关使用xdebug的应用程序跟踪:http://devzone.zend.com/1135/tracing-php-applications-with-xdebug/