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 相关文章推荐
phpmyadmin 常用选项设置详解版
Mar 07 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
PHP+jQuery+Ajax实现用户登录与退出
Apr 27 PHP
WordPress网站性能优化指南
Nov 18 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
让你的PHP7更快之Hugepage用法分析
May 31 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
php 获取文件行数的方法总结
Oct 11 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 PHP
PHP 文件上传限制问题
Sep 01 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
Terran剧情介绍
2020/03/14 星际争霸
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
浅说js变量
2011/05/25 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
Python缩进和冒号详解
2016/06/01 Python
基于Python的关键字监控及告警
2017/07/06 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python语言生成水仙花数代码示例
2017/12/18 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
文明礼仪小标兵事迹
2014/01/12 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
水电工岗位职责
2015/02/14 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
Mysql中常用的join连接方式
2022/05/11 MySQL