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生成便于打印的网页
Oct 09 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
Dec 12 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
Jul 13 PHP
PHP封装curl的调用接口及常用函数详解
May 31 PHP
php微信开发之图片回复功能
Jun 14 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
php读取mysql的简单实例
2014/01/15 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
Django框架视图层URL映射与反向解析实例分析
2019/07/29 Python
python读文件的步骤
2019/10/08 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
学生实习自我鉴定
2013/10/11 职场文书
电子商务专业自我鉴定
2013/12/18 职场文书
幼儿园优秀教师事迹
2014/02/13 职场文书
英文求职信写作小建议
2014/02/16 职场文书
小学一年级学生评语
2014/04/22 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
2014年体育部工作总结
2014/11/13 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS