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+mysql留言本源码
Nov 11 PHP
linux iconv方法的使用
Oct 01 PHP
php错误、异常处理机制(补充)
May 07 PHP
php cc攻击代码与防范方法
Oct 18 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 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对大文件进行读取操作的实现代码
2013/01/23 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
详解vue-cli官方脚手架配置
2018/07/20 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
详解Python中for循环的使用方法
2015/05/14 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
实习教师自我鉴定
2013/09/27 职场文书
个人自我鉴定怎么写
2013/10/28 职场文书
教育学专业实习生的自我鉴定
2013/11/26 职场文书
《雾凇》教学反思
2014/02/17 职场文书
双方协议书
2014/04/22 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
修改并编译golang源码的操作步骤
2021/07/25 Golang
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python