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中uploaded_files函数使用方法详解
Mar 09 PHP
php使用百度翻译api示例分享
Jan 31 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
PHP的preg_match匹配字符串长度问题解决方法
May 03 PHP
PHP获取youku视频真实flv文件地址的方法
Dec 23 PHP
Laravel框架实现发送短信验证功能代码
Jun 06 PHP
session 加入redis的实现代码
Jul 15 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
PHP异步进程助手async-helper
Feb 05 PHP
PHP封装的简单连接MongoDB类示例
Feb 13 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
PHP4在Windows2000下的安装
2006/10/09 PHP
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
Python中关于字符串对象的一些基础知识
2015/04/08 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
详解Python 正则表达式模块
2018/11/05 Python
kafka-python批量发送数据的实例
2018/12/27 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
python如何实现递归转非递归
2021/02/25 Python
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
公务员保密承诺书
2014/03/27 职场文书
环保倡议书范文
2014/05/12 职场文书
努力学习保证书
2015/02/26 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
JavaScript分页组件使用方法详解
2021/07/26 Javascript