我现在正在使用它:
error_log(serialize(debug_backtrace()));
但我每次都必须对它进行反序列化。是否有更好的存储回溯的方法?
这应该生成一个可读的字符串:
error_log(print_r(debug_backtrace(), true));
另外,debug_print_backtrace()将后跟踪打印为字符串,并且可以使用常规输出缓冲区函数捕获其输出:
ob_start();
debug_print_backtrace();
error_log(ob_get_clean());
$log = var_export(debug_backtrace(), true);
然后使用变量$log
登录文件或者什么。
从我的角度来看,最好的方法是使用异常功能:
$e = new Exception();
$e->getTraceAsString();
有点难看但可行,我这样做:
error_log('Identifying string so that it doesn\'t just end up as gibberish' . json_encode(debug_backtrace()));
以下内容可以写入.txt文件,也可以访问它的内容(如$ content [0]),而不是var_export,我觉得有点棘手:
$content = unserialize(serialize(debug_backtrace()));