I have a problem. I would like to log the backtrace in a specific case in a log-file. debug_print_backtrace()
builds a correct string for my purposes but debug_print_backtrace()
prints the trace on the screen instead of returning it.
Use another function. debug_backtrace() returns an array that you can loop through, format and save:
$data = debug_backtrace();
Or use output buffering for the formatted output string:
ob_start();
debug_print_backtrace();
$data = ob_get_clean();
It's possible to do it with even less code, actually. Avoid the overhead of buffering with...
$error_string = (new Exception)->getTraceAsString();
That gives you the exact same output as debug_print_backtrace()
stored to the $error_string
variable.
And if you want to get more information for a more valuable stacktrace (line numbers, local object vars, etc.), try...
$error_string = print_r($e->getTrace(), true);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With