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函数的常用方法及注意之处小结
Jul 10 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
Laravel5中contracts详解
Mar 02 PHP
php单文件版在线代码编辑器
Mar 12 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
php中各种定义变量的方法小结
Oct 18 PHP
thinkphp5实现微信扫码支付
Dec 23 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
PyTorch安装与基本使用详解
2020/08/31 Python
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
关于Java finally的面试题
2016/04/27 面试题
中专自荐信
2013/10/13 职场文书
红旗团支部事迹材料
2014/01/27 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
售后服务承诺书模板
2014/05/21 职场文书
消费者理赔投诉书
2015/07/02 职场文书
Python实现自动玩连连看的脚本分享
2022/04/04 Python