Я приспособил ответ Дона Бриггса выше , чтобы использовать внутреннюю регистрацию ошибок вместо общедоступной печати, что может быть вашей большой проблемой при работе на живом сервере. Кроме того, добавлено еще несколько модификаций, таких как опция, включающая полный путь к файлу вместо базового имени (потому что могут быть файлы с одинаковым именем в разных путях), а также (для тех, кому это требуется) вывод полного стека узлов:
class debugUtils {
public static function callStack($stacktrace) {
error_log(str_repeat("=", 100));
$i = 1;
foreach($stacktrace as $node) {
// uncomment next line to debug entire node stack
// error_log(print_r($node, true));
error_log( $i . '.' . ' file: ' .$node['file'] . ' | ' . 'function: ' . $node['function'] . '(' . ' line: ' . $node['line'] . ')' );
$i++;
}
error_log(str_repeat("=", 100));
}
}
// call debug stack
debugUtils::callStack(debug_backtrace());