I'm using this right now:
error_log(serialize(debug_backtrace()));
But I have to unserialize it every time. Is there a better way to store backtraces?
I'm using this right now:
error_log(serialize(debug_backtrace()));
But I have to unserialize it every time. Is there a better way to store backtraces?
This should generate a readable string:
error_log(print_r(debug_backtrace(), true));
Additionally, debug_print_backtrace() prints the back trace as string and its output can be captured with regular output buffer functions:
ob_start();
debug_print_backtrace();
error_log(ob_get_clean());
From my perspective the best approach is using an exception functionality:
$e = new Exception();
$e->getTraceAsString();
(new \Exception())->getTraceAsString()
–
Impresario (new \Error)->getTraceAsString()
–
Thorvaldsen $log = var_export(debug_backtrace(), true);
Then use the variable $log
to log in file or what ever.
For those who might want a more compact version, this will also do the trick:
error_log((new Exception())->getTraceAsString())
A little ugly but workable, I do this:
error_log('Identifying string so that it doesn\'t just end up as gibberish' . json_encode(debug_backtrace()));
The following can either be written to a .txt file or you can also access it's contents (like $content[0]) as opposed to var_export which is a bit trickier I find:
$content = unserialize(serialize(debug_backtrace()));
© 2022 - 2024 — McMap. All rights reserved.
debug_backtrace()
returns a big array, which doesn't print_r real well. The second method prints a nicer looking backtrace. Another method I sometimes use is justerror_log(new Exception('message here, if you want'));
because I like the way the backtrace is formatted for exceptions. – Shew