$debug = App::getInstance()->config['debug'];
if ($debug===true){
if (!function_exists('trace')){ //specially for ajax debug!!
function trace($var){
$string=print_r($var,true);
require_once(ERHDIR.'../Logger/Logger.class.php');
Logger::getInstance()->logg('INFO',
"/*************************** BEGIN INFO BY TRACE: ***************************\r\n"
.$string
."/*************************** END INFO BY TRACE ***************************\r\n" );
if(! isset($_SERVER['HTTP_X_REQUESTED_WITH']))
echo($string);
}
}
}else{
if (!function_exists('trace')){ //specially for ajax debug!!
function trace($var){
$string=print_r($var,true);
require_once(ERHDIR.'../Logger/Logger.class.php');
Logger::getInstance()->logg('INFO',
"/*************************** BEGIN INFO BY TRACE: ***************************\r\n"
.$string
."/*************************** END INFO BY TRACE ***************************\r\n" );
}
}
}
上述代码,要嵌入你的应用核心类的某个构造函数或初始化函数中。能够获得应用的调试标志。能够得到日志的输出接口。这样,代码就成了。
接下来,只要你想调试,你一概不需要用echo, print_r了,你只要用 trace(你要查看的变量);这个语句就可以了。
好处在何处?因为,你程序中是有可能用到echo的。是否会用到print_r不清楚。
但你程序发布时,只要修改应用的debug标志,就不会有意外的页面输出了。同时,清理代码也很容易,全站点文件搜索一下trace,或替换trace为//trace就OK了。多方便呀!!!!
当然,上面代码有些笨拙。你也大可以直接定义全局函数。所有判断完全在trace函数内部实现。