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