因此,我正在尝试制作一种允许即时记录调试消息的方法,并且我想包括出现消息的文件名和行号。我的第一个倾向是将 debug_backtrace() 作为记录方法的参数之一,它返回一个包含当前文件名和行号的数组。
问题是,这只给出了第一个文件(index.php)的文件和行。index.php 只是一个五行文件,它从包含文件中的类调用方法但是,因此行和文件信息总是说(index.php,第 5 行)无论如何都是无用的。
无论您在代码中的哪个位置,有没有办法获取当前行和文件?
添加
这是文件和行信息:
[2011-01-23 06:26:10] 信息:“请求不存在的控制器(测试)。”,文件:“/home/spotless/public_html/mymvc/index.php”,行:5,请求: “/测试”
这是 index.php 的全部内容:
<?php
include_once('application/init.php');
lev_init::init();
?>
这是在 init.php 文件(第 37 行)中使用 debug_backtrace() 的日志记录调用:
// if requested controller does not exist, log
lev_logging::message('Request made for non-existant controller ('.$requested_controller.').', debug_backtrace());
第二次更新
debug_backtrace 的 var_dump
数组(1) { [0]=> 数组(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"]= > 数组(0) { } } }