This article describes how to use ThinkPHP debugging mode and logging. This function plays a very important role in the development of ThinkPHP projects, and it is necessary to understand and master it. The specific method is as follows:
1. It can be set in config.php, and it is closed by default.
How to enable it:
'APP_DEBUG' => true
Open the ThinkPHPCommondebug.php file to view the default debug settings as follows:
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平台有效 );
Note: DB_FIELDS_CACHE database field cache is turned off by default. If it is turned on, a file cache will be generated in the RuntimeData folder. After modifying the table, if a new field is added, this cache cannot record your operations and we need to manually Modifications to the table will be successful only after deleting it once.
After setting 'APP_DEBUG' => true, the DEBUG prompt as shown below will appear on the access page:
If you only want to display part of the prompt information, such as running time, memory overhead, etc.,
You can make corresponding settings in config.php, such as:
//'APP_DEBUG' => true, // 调试模式开关 'SHOW_RUN_TIME' => true, //运行时间显示 'SHOW_ADV_TIME' => true, //显示详细的运行时间 'SHOW_DB_TIMES' => true, //显示数据库的操作次数 'SHOW_CACHE_TIMES'=>true, //显示缓存操作次数 'SHOW_USE_MEM' => true, //显示内存开销
The prompt information is as shown below:
2. Customization of page Trace information: ThinkPHPTplPageTrace.tpl.php
Customized method one: add a trace.php file in the same directory as config.php, the code is as follows:
<?php return array{ '当前的server信息'=>$_SERVER['REMOTE_ADDR'], }; ?>
Customized method two: add:
in the Action method$this->trace('调试测试','5211314');
3. Output debugging method:
halt('aaaaaaa');//输出aaaaaa并且中断程序执行
4. Model debugging: display SQL statements
$User=new Model('User'); $User->find(1); echo $User->getLastSql();//输出最后执行的一条SQL语句
5. Logging ThinkPHPLibThinkCoreLog.class.php
Set in config.php
'LOG_RECORD'=>true,//开启了日志记录 'LOG_RECORD_LEVEL'=>array('EMERG','ALERT','ERROR'),
I hope the method described in this article will be helpful to everyone.
Logging\ThinkPHP\Lib\Think\Core\Log.class.php
1. It can be set in config.php, and it is turned off by default. 'APP_DEBUG' => true
Open the \ThinkPHP\Common\debug.php file to view the default settings of debug as follows:
return array(
'LOG_RECORD'= >true, // Perform logging
'LOG_RECORD_LEVEL' => array('EMERG','ALERT','CRIT','ERR','WARN','NOTIC','INFO' ,'DEBUG','SQL'), // Allowed logging level
'DB_FIELDS_CACHE'=> false, //Database field cache
'SHOW_RUN_TIME'=>true, // Run Time display
'SHOW_ADV_TIME'=>true, // Display detailed running time
'SHOW_DB_TIMES'=>true, // Display number of database queries and writes
'SHOW_CACHE_TIMES'=>true , // Display the number of cache operations
'SHOW_USE_MEM'=>true, // Display memory overhead
'SHOW_PAGE_TRACE'=>true, // Display page Trace information is defined by the Trace file and assigned by the Action operation
'APP_FILE_CASE' => true, // Whether to check the case of the file is valid for Windows platform
);
Note: DB_FIELDS_CACHE database field cache is turned off by default. If it is turned on, it will be executed at Runtime A file cache is generated in the \Data folder, and after modifying the table, if a new field is added, this cache cannot record your operations. We need to manually delete it once before the table modification can be successful.
After setting 'APP_DEBUG' => true, the DEBUG prompt as shown below will appear on the access page:
If you only want to display part of the prompt information, such as running time, memory overhead, etc.,
You can make corresponding settings in config.php, such as:
//'APP_DEBUG' => true, // Debug mode switch
'SHOW_RUN_TIME' => true , //Display running time
'SHOW_ADV_TIME' => true, //Display detailed running time
'SHOW_DB_TIMES' => true, //Display number...Remaining full text>>
Zhang Haibo
[authoritative expert]
Let me tell you the answer!
No problem, you create an IndexAction.class.php file in Admin/Lib/Action,
display();
}
}
Then create an Index folder in Admin/Tpl, and just create an index.html file in this folder