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连接Oracle数据库
Oct 09 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
apache mysql php 源码编译使用方法
May 03 PHP
探讨如何把session存入数据库
Jun 07 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
php处理带有中文URL的方法
Jul 11 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
Aug 11 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 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
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
js实现筛选功能
2020/11/24 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python中文字符串截取问题
2015/06/15 Python
python清除字符串里非数字字符的方法
2015/07/02 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
解决python对齐错误的方法
2020/07/16 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
光声世纪笔试题目
2012/08/25 面试题
大学生演讲稿范文
2014/01/11 职场文书
美发活动策划书
2014/01/14 职场文书
企业介绍信范文
2015/01/30 职场文书
整脏治乱工作简报
2015/07/21 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
canvas多重阴影发光效果实现
2021/04/20 Javascript
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server