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脚本
Nov 26 PHP
PHP 调试工具Debug Tools
Apr 30 PHP
php数组去重的函数代码
Feb 03 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
yii框架搜索分页modle写法
Dec 19 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
laravel 中如何使用ajax和vue总结
Aug 16 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 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实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
javascript中的面向对象
2017/03/30 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
Python搭建FTP服务器的方法示例
2018/01/19 Python
python删除过期log文件操作实例解析
2018/01/31 Python
python实现数据分析与建模
2019/07/11 Python
python读取并写入mat文件的方法
2019/07/12 Python
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
《木笛》教学反思
2014/03/01 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
大学生实习推荐信
2015/03/27 职场文书