Итак, я пытаюсь создать метод, который позволяет регистрировать отладочные сообщения на лету, и я хотел бы указать имя файла и номер строки, где произошло сообщение.Моим первым желанием было дать debug_backtrace () в качестве одного из аргументов метода ведения журнала, который возвращает массив, который содержит текущее имя файла и номер строки.
Проблема в том, что это дает только файл и строкусамого первого файла с именем (index.php).index.php - это всего лишь пятистрочный файл, который вызывает метод из класса во включаемом файле, поэтому строка и информация о файле всегда говорят (index.php, строка 5) независимо от того, что они бесполезны.
Есть ли способ получить текущую строку и файл независимо от того, где в коде вы находитесь?
Добавление
Вот информация о файле и строке:
[2011-01-23 06:26:10] Информация: «Запрос сделан для несуществующего контроллера (тест).», Файл: «/home/spotless/public_html/mymvc/index.php", Строка: 5, запрос:" / test "
Вот index.php во всей его полноте:
<?php
include_once('application/init.php');
lev_init::init();
?>
Вот вызов журнала с использованием debug_backtrace ()в файле init.php (строка 37):
// if requested controller does not exist, log
lev_logging::message('Request made for non-existant controller ('.$requested_controller.').', debug_backtrace());
второе обновление
var_dump массива debug_backtrace
(1) {[0] => array (6) {["file"] => string (42) "/home/spotless/public_html/mymvc/index.php" ["line"] => int (5) ["function "] => string (4)" init "[" class "] => string (8)" lev_init "["type"] => string (2) "::" ["args"] => array (0) {}}}