问题所以我想做一个方法,允许即时记录调试消息,并且我想包括消息发生的文件名和行号。我的第一个倾向是给debug_backtrace()作为日志方法的参数之一,它返回一个包含当前文件名和行号的数组。跟踪文件和线的调试日志记录(PHP)
问题是,这只给出了第一个文件(index.php)的文件和行。 index.php只是一个五行文件,它在一个包含文件中调用一个类的方法,所以行和文件信息总是说(index.php,第5行),不管它是什么也没用。
有没有办法获得当前的行和文件,无论您在代码中的哪个位置?
加成
这里是文件和行信息:
[2011-01-23 6点26分10秒]的资料: “请求不存在的 控制器做出(试验)“,文件: ”/home/spotless/public_html/mymvc/index.php“, 行:5,请求: ”/测试“
ħ ERE是以其整体在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());
第二更新
debug_backtrace
阵列(1){[0] =>数组(6){[“文件的的var_dump “] => 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){}}}
这不应该。回溯应该包含完整的信息。你知道这是一个数组吗?你能举一个例子回溯吗? – 2011-01-24 00:22:28
@dqhendricks:你确定文档显示它显示每个函数调用的当前行和文件.... – RageZ 2011-01-24 00:23:14