PHP:跟踪脚本流程

时间:2012-06-18 12:49:11

标签: php debugging

是否可以在PHP脚本中启动跟踪日志并激活调试日志。 我不是在寻找eclipse + xdebug,而是像这样的用例: 脚本启动时,会检查是否设置了$_GET["debugme"]。如果是,请说start_trace_log()。 之后在脚本的其余部分中发生的任何事情都应该被记录,例如,

  

scriptA.php:10 include(“anotherscript.php”)

     

anotherscript.php:1 foo()

     

...

目前,我必须为我有兴趣记录的任何脚本手动执行此操作,并且脚本必须检查$_GET["debugme"],而不是在此脚本运行中简单地调试ALL。对于偶尔检查脚本非常不舒服。

从开始点到最后一行跟踪php脚本有什么更好的想法或舒适的方法吗?

3 个答案:

答案 0 :(得分:1)

将此行添加到结尾或页脚脚本的末尾:
   if(isset($_GET["debugme"]))debug_print_backtrace(); 这将打印详细信息,例如在script-path.php调用的#... function-name():linenumber。

不要忘记将debugme功能限制为仅在开发系统上运行!

答案 1 :(得分:1)

phptrace可能是更好的选择,因为您无需更改脚本,您可以随时跟踪。

答案 2 :(得分:0)

虽然在生产中使用它时发现它非常烦人,但你可以抛出这些代码:

if(isset($_GET['DEBUGME'])) {
    start_trace_log();
}

进入一个文件,然后将该文件添加到PHP auto_prepend_file中,以便它在每个PHP脚本的开头运行。

当然,假设您已编码并包含start_trace_log()。您还应该只在开发服务器上包含它。带有调试标志的脚本不应该用于生产。