我现在正在使用它:
error_log(serialize(debug_backtrace()));
但我必须每次都反序化它。有没有更好的存储回溯的方法?
答案 0 :(得分:41)
这应该生成一个可读的字符串:
error_log(print_r(debug_backtrace(), true));
此外,debug_print_backtrace()将后跟踪打印为字符串,并且可以使用常规输出缓冲区函数捕获其输出:
ob_start();
debug_print_backtrace();
error_log(ob_get_clean());
答案 1 :(得分:8)
$log = var_export(debug_backtrace(), true);
然后使用变量$log
登录文件或其他任何内容。
答案 2 :(得分:7)
从我的角度来看,最好的方法是使用异常功能:
$e = new Exception();
$e->getTraceAsString();
答案 3 :(得分:4)
有点难看但可行,我这样做:
error_log('Identifying string so that it doesn\'t just end up as gibberish' . json_encode(debug_backtrace()));
答案 4 :(得分:0)
以下内容可以写到.txt文件中,也可以访问它的内容(例如$ content [0]),而不是var_export,我觉得这有点棘手:
$content = unserialize(serialize(debug_backtrace()));
答案 5 :(得分:0)
对于那些可能想要更紧凑版本的人,这也可以解决问题:
error_log((new Exception())->getTraceAsString())