debug_print_backtrace() 到日志文件的字符串

2022-08-30 20:39:52

我有一个问题。我想在日志文件中记录特定情况下的回溯。 为我的目的构建了一个正确的字符串,但在屏幕上打印跟踪而不是返回它。debug_print_backtrace()debug_print_backtrace()


答案 1

使用其他函数。debug_backtrace() 返回一个数组,您可以循环访问该数组,设置其格式并保存:

$data = debug_backtrace();

或者对格式化的输出字符串使用输出缓冲:

ob_start();
debug_print_backtrace();
$data = ob_get_clean();

答案 2

实际上,可以用更少的代码来做到这一点。避免了缓冲的开销...

$error_string = (new Exception)->getTraceAsString();

这将为您提供与存储到变量的输出完全相同的输出。debug_print_backtrace()$error_string

如果您想获得有关更有价值的堆栈跟踪(行号,本地对象变量等)的更多信息,请尝试...

$error_string = print_r($e->getTrace(), true);

推荐