如何在PHP中跟踪代码执行?

如何在PHP中跟踪代码执行?,php,trace,Php,Trace,我想看看PHP脚本整个代码执行的日志。类似这样的事情:(因为没有更好的例子;请不要火焰) 有没有办法在PHP中获取日志 注意:我知道我可以使用调试器,但这不一样 在任何函数中,您都可以使用 或者您可以使用来分析您的PHP脚本。Xdebug肯定是您想要的,但也有类似的功能 Zend在这里的博客文章应该给你一些提示:你可以使用一个名为:XHProf的PHP扩展,它是由Facebook开发的 它能够报告功能级调用计数,包括 以及独占墙时间、CPU时间和内存使用 看一看 这是使用类固醇的var_dum

我想看看PHP脚本整个代码执行的日志。类似这样的事情:(因为没有更好的例子;请不要火焰)

有没有办法在PHP中获取日志


注意:我知道我可以使用调试器,但这不一样

在任何函数中,您都可以使用


或者您可以使用来分析您的PHP脚本。

Xdebug肯定是您想要的,但也有类似的功能


Zend在这里的博客文章应该给你一些提示:

你可以使用一个名为:XHProf的PHP扩展,它是由Facebook开发的

它能够报告功能级调用计数,包括 以及独占墙时间、CPU时间和内存使用

看一看

这是使用类固醇的var_dump()和debug_backtrace()。易于使用,但功能强大且可自定义。对开发工具箱的重要补充


它还具有特定于平台的扩展

是跟踪php代码执行的一个很棒的工具

这是我在windows linux子系统(WSL)中运行php或Laravel framework时跟踪所有行所需要的

在系统中安装
xdebug
,然后使用以下详细信息编辑
/etc/php/7.4/mods available/xdebug.ini

zend_extension=xdebug.so
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.remote_port = 9001
xdebug.scream=0
xdebug.cli_color=1
xdebug.show_local_vars=1
xdebug.remote_autostart=1

; this part here, above is used for line by line debug in vscode
xdebug.auto_trace=1
xdebug.trace_output_dir = /mnt/c/projects/www/phptraces
xdebug.trace_output_name=trace.%u
xdebug.collect_params=4
xdebug.trace_format = 1
这个

xdebug.trace_output_dir = /mnt/c/projects/www/phptraces
是存储日志的路径

对于laravel框架,它生成非常大的文件,最有可能是4GB大小的文件。所以我用

split -l 1000 trace.1576842503_368392.xt pieces/traces
将其拆分为更小的部分,每个部分包含1000行,并将其存储到pieces目录中


然后您可以使用编辑器在文件中查找您要查找的内容

debug\u backtrace放在PHP脚本中的特定位置,但我想查看整个代码执行的日志-从开始到结束。可能不理解这个问题。请求的是执行跟踪工具。这不像回溯或分析,但Xdebug也做执行跟踪。这是一个关于类固醇的var_转储和debug_回溯:-)不理解这个问题。请求的是一个执行跟踪工具。这很有趣。谢谢分享。我会投赞成票,因为它实际上回答了这个问题,而不是目前投票率最高的答案。另外,请阅读phptrace的文档页面,其中有一节介绍了与其他执行跟踪工具的比较。遗憾的是,截至2018年,一个废弃的项目仅支持PHP 7.1.Xhprof,它对于本地和生产环境的性能跟踪非常有用,但对于调试其他问题却没有帮助。