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 类商品秒杀计时实现代码
May 05 PHP
php 验证码实例代码
Jun 01 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
CI框架的安全性分析
May 18 PHP
php快速排序原理与实现方法分析
May 26 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
Jun 29 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
thinkphp整合系列之极验滑动验证码geetest功能
Jun 18 PHP
对laravel in 查询的使用方法详解
Oct 09 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中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
用jQuery模拟select下拉框的简单示例代码
2014/01/26 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
JavaScript模块详解
2017/12/18 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
学习python的前途 python挣钱
2019/02/27 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
合作意向协议书范本
2014/03/31 职场文书
公司周年庆活动方案
2014/08/25 职场文书
前台岗位职责范本
2015/04/16 职场文书
小学生读书笔记
2015/07/01 职场文书
Java用自带的Image IO给图片添加水印
2021/06/15 Java/Android