trace之不能使用ChromeShowPageTrace行为输出SQL

浏览:1423 发布日期:2014/06/07 分类:技术分享
ChromeShowPageTraceBehavior : 将Trace信息输出到chrome浏览器的控制器,从而不影响ajax效果和页面的布局。

主要是在ajax下调试用的。
但是发现不能输出执行的sql,

阅读了代码,发现Think.class.php下trace函数下在ajax模式下,只能写入到文件,而不是记录到$_trace变量里面。

那么添加几行代码让他支持把。    /**
     * 添加和获取页面Trace记录
     * @param string $value 变量
     * @param string $label 标签
     * @param string $level 日志级别(或者页面Trace的选项卡)
     * @param boolean $record 是否记录日志
     * @return void
     */
    static public function trace($value='[think]',$label='',$level='DEBUG',$record=false) {
        static $_trace =  array();
        if('[think]' === $value){ // 获取trace信息
            return $_trace;
        }else{
            $info   =   ($label?$label.':':'').print_r($value,true);
            $level  =   strtoupper($level);
            
            if((defined('IS_AJAX') && IS_AJAX) || !C('SHOW_PAGE_TRACE')  || $record) {
                Log::record($info,$level,$record);
                if (C('SHOW_PAGE_TRACE')) {
                    if (!isset($_trace[$level]) || count($_trace[$level]) > C('TRACE_MAX_RECORD')) {
                        $_trace[$level] = array();
                    }
                    $_trace[$level][] = $info;
                }
            }else{
                if(!isset($_trace[$level]) || count($_trace[$level])>C('TRACE_MAX_RECORD')) {
                    $_trace[$level] =   array();
                }
                $_trace[$level][]   =   $info;
            }
        }
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>