Я использую это прямо сейчас:
error_log(serialize(debug_backtrace()));
Но я должен каждый раз отменять сериализацию.Есть ли лучший способ хранить следы?
Это должно генерировать читаемую строку:
error_log(print_r(debug_backtrace(), true));
Кроме того, debug_print_backtrace () печатает обратную трассировку как строку, и ее вывод может быть захвачен с помощью обычных функций буфера вывода:
ob_start(); debug_print_backtrace(); error_log(ob_get_clean());
$log = var_export(debug_backtrace(), true);
Затем используйте переменную $log для входа в файл или что-либо еще.
$log
С моей точки зрения, лучший подход - использовать функцию исключения:
$e = new Exception(); $e->getTraceAsString();
Немного некрасиво, но работоспособно, я делаю это:
error_log('Identifying string so that it doesn\'t just end up as gibberish' . json_encode(debug_backtrace()));
Следующее может быть либо записано в файл .txt, либо вы также можете получить доступ к его содержимому (например, $ content [0]), в отличие от var_export, что немного сложнее:
$content = unserialize(serialize(debug_backtrace()));