отладка — функция PHP для вывода в журнал аргументов трассировки стека

Я пытаюсь собрать отладочную информацию в моей функции обработчика ошибок. Я могу проанализировать стек и получить файл и номер строки. У меня также есть массив аргументов, которые я хотел бы также распечатать в своем журнале, но я не хочу раздувать файл журнала.

Я хочу напечатать все числа, логические значения, строки (например, первые 50 символов), имена классов для объектов, размер массивов, null для нулей и всего, что приходит позже в разумной форме.
Он не должен производить никаких новых строк, поэтому у меня есть одна строка для каждой записи стека.

Поскольку я не хочу изобретать велосипед, существует ли в PHP функция из коробки, которая будет вести себя так, как описано?

3

Решение

Вы можете проверить, есть ли php-пакеты или библиотеки, которые ведут логи. Например, груша есть несколько пакетов журналов, которые вы можете использовать в логирование.

0

Другие решения

Сначала я попытался сделать это сам:

debug_backtrace();

дает массив, который я обработал, используя:

protected function backTraceLine(array $line)
{
$ret = "";
if (isset ($line['file']))
$ret = $ret . $line['file'];
if (isset ($line['function']))
$ret = $ret . $line['function'];
if (isset ($line['file']))
$ret = "[" . $ret . $line['line'] . "]";
try {
$args = $line['args'];
if (is_array($args))
$ret = $ret . "(" . implode(",", $args) . ")";
} catch (Exception $e) {
}
return $ret;
}

Но позже я нашел этот метод, который делает именно то, что мне нужно:

$exception->getTraceAsString()

Если нет исключения, мы можем создать новое и получить оттуда стек

0

Вы также можете использовать XDebug для генерации трассировки стека: https://xdebug.org/docs/stack_trace

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector