• thinkphp 页面Trace信息


    调试模式并不能完全满足我们调试的需要,有时候我们需要手动的输出一些调试信息。除了本身可以借助一些开发工具进行调试外,ThinkPHP还提供了一些内置的调试工具和函数。例如,页面Trace功能就是ThinkPHP提供给开发人员的一个用于开发调试的辅助工具。可以实时显示当前页面的操作的请求信息、运行情况、SQL执行、错误提示等,并支持自定义显示。

    大理石机械构件

    页面Trace功能对调试模式和部署模式都有效,不过只能用于有页面输出的情况(如果你的操作没有任何输出,那么可能页面Trace功能对你帮助不大,你可能需要使用后面的调试方法)。

    在部署模式下面,显示的调试信息没有调试模式完整,通常我们建议页面Trace配合调试模式一起使用。

    要开启页面Trace功能,需要在项目配置文件中设置:

    1. // 显示页面Trace信息
    2. 'SHOW_PAGE_TRACE' =>true,

    该参数默认为关闭,开启后并且你的页面有模板输出的话,页面右下角会显示ThinkPHP的LOGO:

    我们看到的LOGO后面的数字就是当前页面的执行时间(单位是秒) 点击该图标后,会展开详细的页面Trace信息,如图:

    页面Trace框架有6个选项卡,分别是基本、文件、流程、错误、SQL和调试,点击不同的选项卡会切换到不同的Trace信息窗口。

    选项卡描述
    基本 当前页面的基本摘要信息,例如执行时间、内存开销、文件加载数、查询次数等等。
    文件 详细列出当前页面执行过程中加载的文件及其大小。
    流程 会列出当前页面执行到的行为和相关流程(待完善)。
    错误 当前页面执行过程中的一些错误信息,包括警告错误。
    SQL 当前页面执行到的SQL语句信息。
    调试 开发人员在程序中进行的调试输出。

    页面Trace的选项卡是可以定制和扩展的,默认的配置为:

    1. 'TRACE_PAGE_TABS'=>array(
    2. 'base'=>'基本',
    3. 'file'=>'文件',
    4. 'think'=>'流程',
    5. 'error'=>'错误',
    6. 'sql'=>'SQL',
    7. 'debug'=>'调试'
    8. )

    也就是我们看到的默认情况下显示的选项卡,如果你希望增加新的选项卡:用户,则可以修改配置如下:

    1. 'TRACE_PAGE_TABS'=>array(
    2. 'base'=>'基本',
    3. 'file'=>'文件',
    4. 'think'=>'流程',
    5. 'error'=>'错误',
    6. 'sql'=>'SQL',
    7. 'debug'=>'调试',
    8. 'user'=>'用户'
    9. )

    也可以把某几个选项卡合并,例如:

    1. 'TRACE_PAGE_TABS'=>array(
    2. 'base'=>'基本',
    3. 'file'=>'文件',
    4. 'think'=>'流程',
    5. 'error|debug|sql'=>'调试',
    6. 'user'=>'用户'
    7. )

    我们把刚才的用户信息调试输出到用户选项卡,trace方法的用法如下:

    trace($user,'用户信息','user');

    第三个参数表示选项卡的标识,和我们在TRACE_PAGE_TABS中配置的对应。 默认情况下,页面Trace窗口显示的信息是不会保存的,如果希望保存这些trace信息,我们可以配置PAGE_TRACE_SAVE参数

    'PAGE_TRACE_SAVE'=>true

    开启页面trace信息保存后,每次的页面Trace信息会以日志形式保存到项目的日志目录中,命名格式是: 当前日期_trace.log,例如:12-06-21_trace.log

    如果不希望保存所有的选项卡的信息,可以设置需要保存的选项卡,例如:

    'PAGE_TRACE_SAVE' => array('base','file','sql');

    设置后只会保存base、file和sql三个选项卡的信息。

  • 相关阅读:
    终于有人讲清楚准确率(accuracy)、召唤率(recall)和精确率(precision)的关系了
    leetcode之两数相加解题思路
    Django-rest-framwork——认证
    py2neo详细介绍第一章
    springdata的懒加载时机
    错题记录
    SSM框架的优势?
    2020-06-30 pol实现execl导入导出
    2020-06-30 动态sql
    String 、StringBuilder 、StringBuffer 的区别? 什么情况下用“+”运算符进行字符串连接比调用 StringBuffer/StringBuilder对象的 append 方法连接字符串性能更好?.
  • 原文地址:https://www.cnblogs.com/furuihua/p/11834766.html
Copyright © 2020-2023  润新知