时间:2021-07-01 10:21:17 帮助过:20人阅读
TP的调试真的很傻很难用,要想输出trace信息,条件如下: 1. APP_DEBUG 以及SHOW_PAGE_TRACE设置成true, 2. action 必须有视图 才行 在这里发挥了自己的想象终于把 firephp 集成进来了,哈哈哈,方法如下: [就是替换 ThinkPHP/Lib/Think/Core/Log.class.php] 类 把 FirePHP.class.php 复制到 ThinkPHP/Lib/Think/Core 目录中,修改如下方法: [建议将原有文件备份哦,此仅作测试使用] static function record($message,$level=self::ERR,$record=false) { if($record || in_array($level,C('LOG_RECORD_LEVEL'))) { $now = date(self::$format); self::$log[] = "{$now} {$level}: {$message}\r\n"; switch($level){ case self::DEBUG: FirePHP::getInstance(true)->trace($message, $level); break; case self::INFO: FirePHP::getInstance(true)->log($message, $level); break; case self::SQL: FirePHP::getInstance(true)->info($message, $level); break; case self::NOTICE: case self::WARN: FirePHP::getInstance(true)->warn($message, $level); break; default: FirePHP::getInstance(true)->error($message, $level); break; } } } 对于 SQL的输出,因为 ThinkPHP/Lib/Think/Db/Db.class.php 里面第128行 对 调试参数写死了, 必须将其 与 C('APP_DEBUG') 绑定,很费解,此处修改为 加一个自定义的,不与原有的相冲突..代码如下: if(C('APP_DEBUG') || C('LOG_RECORD_SQL')) 在配置文件里面做如下选项,即可: 'LOG_RECORD'=>true, // 进行日志记录 'LOG_RECORD_SQL'=>true, // 进行日志记录 'LOG_RECORD_LEVEL' => array('EMERG','ALERT','CRIT','ERR','WARN','NOTIC','INFO','DEBUG','SQL'), // 允许记录的日志级别 日志级别可以自增减 呵呵 ?