搜索
系统检测到您的用户名不符合规范:

开启SHOW_PAGE_TRACE时,解决firephp trace 控制台下不显示sql信息

浏览:1324 发布日期:2015年09月24日 分类:技术分享 关键字: bug
在conf目录下增加tags.php<?php
return array(
'app_end'=>array(
'Behavior\FireShowPageTraceBehavior'

)
);
配置里增加 'FIRE_SHOW_PAGE_TRACE' => true

发现firephp下会出现trace,但sql项是空的
调试了下发现以下问题

FireShowPageTraceBehavior.class.php
39行 左右 // 行为扩展的执行入口必须是run
public function run(&$params){
if(C('FIRE_SHOW_PAGE_TRACE',null,true)) $this->showTrace();
}
但 Think.class.php
331行左右 if((defined('IS_AJAX') && IS_AJAX) || !C('SHOW_PAGE_TRACE') || $record) {
//这里用了SHOW_PAGE_TRAC 并没有判断 FIRE_SHOW_PAGE_TRACE情况,所以把sql记录到日志里了,看了下log文件里面是有sql的
//将 !C('SHOW_PAGE_TRACE') 更改为 (!C('SHOW_PAGE_TRACE') && !C('FIRE_SHOW_PAGE_TRACE')),然后在配置里增加 'FIRE_SHOW_PAGE_TRACE' => true,即可
Log::record($info,$level,$record);
}else{
if(!isset($_trace[$level]) || count($_trace[$level])>C('TRACE_MAX_RECORD')) {
$_trace[$level] = array();
}
$_trace[$level][] = $info;
}
}
解决办法:

增加了条件,(!C('SHOW_PAGE_TRACE') && !C('FIRE_SHOW_PAGE_TRACE')),即开启了其中任何一个,就不写到日志中,而是显示出sql


另发现会报错,new Exception()时少了个 \
修改成以下代码
1473行 return new \Exception($Message);
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
qihjn
积分:1772 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /