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 相关文章推荐
ftp类(myftp.php)
Oct 09 PHP
php 之 没有mysql支持时的替代方案
Oct 09 PHP
php实现的简单压缩英文字符串的代码
Apr 24 PHP
PHP 学习路线与时间表
Feb 21 PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 PHP
php中存储用户ID和密码到mysql数据库的方法
Feb 06 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
PHP版微信公众平台红包API
Apr 02 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
多个Laravel项目如何共用migrations详解
Sep 25 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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
php中的登陆login实例代码
2016/06/20 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
Javascript学习笔记1 数据类型
2010/01/11 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
js Array.slice的8种不同用法示例
2019/07/10 Javascript
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
深入理解Django的中间件middleware
2018/03/14 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python实现全排列的打印
2018/08/18 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
应届生求职信写作技巧
2013/10/24 职场文书
学期研究性学习个人的自我评价
2014/01/09 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
教师节促销方案
2014/03/22 职场文书
勾股定理课后反思
2014/04/26 职场文书
2014年图书室工作总结
2014/12/09 职场文书
家装业务员岗位职责
2015/04/03 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
图文详解nginx日志切割的实现
2022/01/18 Servers
spring 项目实现限流方法示例
2022/07/15 Java/Android