ThinkPHP调试模式与日志记录概述


Posted in PHP onAugust 22, 2014

本文所述为ThinkPHP调试模式与日志记录的使用方法,该功能在进行ThinkPHP项目开发的过程中起到非常重要的作用,有必要加以理解并掌握。具体方法如下:

1、可以在config.php中进行设置,默认为关闭状态。

开启方法如下:

'APP_DEBUG'  => true

打开\ThinkPHP\Common\debug.php文件可以查看debug的默认设置如下:

return array(
  'LOG_RECORD'=>true, // 进行日志记录
  'LOG_RECORD_LEVEL'    =>  array('EMERG','ALERT','CRIT','ERR','WARN','NOTIC','INFO','DEBUG','SQL'), // 允许记录的日志级别
  'DB_FIELDS_CACHE'=> false, //数据库字段缓存
  'SHOW_RUN_TIME'=>true,     // 运行时间显示
  'SHOW_ADV_TIME'=>true,     // 显示详细的运行时间
  'SHOW_DB_TIMES'=>true,     // 显示数据库查询和写入次数
  'SHOW_CACHE_TIMES'=>true,    // 显示缓存操作次数
  'SHOW_USE_MEM'=>true,      // 显示内存开销
  'SHOW_PAGE_TRACE'=>true,    // 显示页面Trace信息 由Trace文件定义和Action操作赋值
  'APP_FILE_CASE' =>  true, // 是否检查文件的大小写 对Windows平台有效
);

注意事项:DB_FIELDS_CACHE数据库字段缓存默认关闭状态,如果开启的话,会在Runtime\Data文件夹下生成文件缓存,并且修改表之后,如新加了字段,这个缓存无法记录你的操作,需要我们手动删除一次,对表的修改才会成功。

将'APP_DEBUG'   =>  true后,访问页面会出现如下图的DEBUG提示:

ThinkPHP调试模式与日志记录概述

如果只想显示一部分提示信息,如运行时间,内存开销等,

可以在config.php中进行相应的设置即可,如:

//'APP_DEBUG'  => true, // 调试模式开关
'SHOW_RUN_TIME' => true, //运行时间显示
'SHOW_ADV_TIME' => true, //显示详细的运行时间
'SHOW_DB_TIMES' => true, //显示数据库的操作次数
'SHOW_CACHE_TIMES'=>true, //显示缓存操作次数
'SHOW_USE_MEM' => true, //显示内存开销

提示信息如下图:

ThinkPHP调试模式与日志记录概述 

2、页面Trace信息的自定义:\ThinkPHP\Tpl\PageTrace.tpl.php

自定义的方法一:在config.php的同级目录加上一个trace.php文件,代码如下:

<?php
 return array{
  '当前的server信息'=>$_SERVER['REMOTE_ADDR'],
 };
?>

自定义的方法二:在Action方法中添加:

$this->trace('调试测试','5211314');

3、输出调试法:

halt('aaaaaaa');//输出aaaaaa并且中断程序执行

4、模型调试:显示SQL语句

$User=new Model('User');
 $User->find(1);
 echo $User->getLastSql();//输出最后执行的一条SQL语句

5、日志记录\ThinkPHP\Lib\Think\Core\Log.class.php

  config.php中设置

'LOG_RECORD'=>true,//开启了日志记录
 'LOG_RECORD_LEVEL'=>array('EMERG','ALERT','ERROR'),

希望本文所述方法对大家有所帮助。

PHP 相关文章推荐
php str_pad 函数使用详解
Jan 13 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
php中return的用法实例分析
Feb 28 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
php实现推荐功能的简单实例
Sep 29 PHP
ThinkPHP连接数据库及主从数据库的设置教程
Aug 22 #PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 #PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 #PHP
ThinkPHP基本的增删查改操作实例教程
Aug 22 #PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 #PHP
ThinkPHP验证码和分页实例教程
Aug 22 #PHP
ThinkPHP文件上传实例教程
Aug 22 #PHP
You might like
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
python安装及变量名介绍详解
2020/12/12 Python
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
售后服务承诺书范文
2014/03/26 职场文书
五心教育心得体会
2014/09/04 职场文书
2015年派出所工作总结
2015/04/24 职场文书
与死神共舞观后感
2015/06/15 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python