我有一個問題。我想在一個特定的情況下在一個日誌文件中記錄回溯。 debug_print_backtrace()
爲我的目的建立一個正確的字符串,但debug_print_backtrace()
在屏幕上打印跟蹤而不是返回它。debug_print_backtrace()爲日誌文件的字符串
任何想法?
我有一個問題。我想在一個特定的情況下在一個日誌文件中記錄回溯。 debug_print_backtrace()
爲我的目的建立一個正確的字符串,但debug_print_backtrace()
在屏幕上打印跟蹤而不是返回它。debug_print_backtrace()爲日誌文件的字符串
任何想法?
使用其他功能。 debug_backtrace()返回一個數組,你可以通過,格式環路和保存:
$data = debug_backtrace();
或者使用輸出緩衝的格式化輸出字符串:
ob_start();
debug_print_backtrace();
$data = ob_get_clean();
這是可能的,甚至更少的代碼來做到這一點,其實。避免與緩衝的開銷......
$error_string = (new Exception)->getTraceAsString();
這使你完全一樣的輸出debug_print_backtrace()
存儲到$ error_string還。
如果你想獲得更有價值的堆棧跟蹤(行號,本地對象增值經銷商等)的更多信息,請...
$error_string = print_r($e->getTrace(), true);
這是用於記錄的目的已經足夠了:
$this->log(print_r(debug_backtrace(), true));
謝謝! :)的作品 – phip1611