phi*_*611 17 php debugging logging
我有个问题.我想在日志文件中记录特定情况下的回溯.debug_print_backtrace()为我的目的构建一个正确的字符串,但debug_print_backtrace()在屏幕上打印跟踪而不是返回它.
有任何想法吗?
Abr*_*ver 19
使用其他功能. debug_backtrace()返回一个可以循环,格式化和保存的数组:
$data = debug_backtrace();
Run Code Online (Sandbox Code Playgroud)
或者对格式化的输出字符串使用输出缓冲:
ob_start();
debug_print_backtrace();
$data = ob_get_clean();
Run Code Online (Sandbox Code Playgroud)
Hol*_*ger 11
实际上,可以用更少的代码来实现它.避免使用缓冲的开销
$error_string = (new Exception)->getTraceAsString();
Run Code Online (Sandbox Code Playgroud)
这将为您提供与debug_print_backtrace()存储到$ error_string 的完全相同的输出.
如果您想获得更多有价值的堆栈跟踪(行号,本地对象变量等)的更多信息,请尝试...
$error_string = print_r($e->getTrace(), true);
Run Code Online (Sandbox Code Playgroud)