PHP Xdebug调试专题 - 设置文件名

  • 作者:KK

  • 发表日期:2016.2.24


默认情况下生成的文件名是类似trace.150145005.xt的,我个人觉得这样命名并不友好,起码就算你重复运行其它脚本都是将调试信息记录到这个文件中的,如果想为每个不同的脚本做不同的记录就要先复制备份开,再运行让它产生新的同名文件了

所以我们要通过xdebug.trace_output_name配置项来设置调试信息的文件名

样本配置:

xdebug.auto_trace=on
xdebug.trace_output_dir="E:\xdebug"
xdebug.collect_params=0
#重点是下面这个,值为%R表示以请求地址来命名,这样不同地址就会有不同的调试信息文件
xdebug.trace_output_name="%R"

然后访问http://xxx.com/a.php就会产生_a_php.xt这个文件

而且同一个入口地址不同参数都会不同喔,你试试访问http://xxx.com/a.php?x=y就会产生_a_php_x=y.xt这个文件

下面我列出所有命名参数

参数 含义 例子 命名结果
%c 以URL中文件目录的CRC32运算结果命名 trace.%c trace.1258863198.xt
%p 以进程PID命名 trace.%p trace.5174.xt
%r 以随机数命名 trace.%r trace.072db0.xt
%s 入口脚本名称,实际上我测试结果是不会生成文档,原因暂时不明 cachegrind.out.%s cachegrind.out._home_httpd_html_test_xdebug_test_php
%t 以时间戳命名 trace.%t trace.1179434742.xt
%u 以毫秒级时间戳命名 trace.%u trace.1179434749_642382.xt
%H 以$_SERVER['HTTP_HOST']这个域名命名 trace.%H trace.kossu.xt
%R 以$_SERVER['REQUEST_URI']这个URI部分命名 trace.%R trace._test_xdebug_test_php_var=1_var2=2.xt
%U 以$_SERVER['UNIQUE_ID']这个唯一的请求ID来命名 trace.%U trace.TRX4n38AAAEAAB9gBFkAAAAB.xt
%S 以session_id命名,但前提是cookie中有PHPSESSIONID trace.%S trace.c70c1ec2375af58f74b390bbdd2a679d.xt
%% 以两个百分号命名,我看不懂加这个命名方式有何意义,求教大神啊! trace.%% trace.%%.xt