调试
框架中有两种调试方式,一种是在页面控制台中输出的调试,方便用户对应网页调试。
另一种则是和其他框架一样,在日志中调试
控制台调试
KaliPHP 的一大特色既是这控制台调试方式,通过Chrome logger扩展,用户可以调试自己想要的数据,同时也不会对当前的页面结构产生影响。
调试的开关在/web/index.php
里
扩展安装地址:https://chrome.google.com/extensions/detail/noaneddfkdjfnfdakjjmocngnfkfehhd
// console调试开关,关闭后控制台不会输出内容
defined('SYS_CONSOLE') or define('SYS_CONSOLE', true);
控制台调试的方式,同步异步都可以调试,因为调试信息是在http header信息里面,所以异步ajax的请求也会把调试信息输出在控制台里了,并不会污染json数据。
调试方式很简单,全局可以调用log::info($message, $context)
,另外还有warn,error,debug等
第一个参数为想要调试的内容,同时也支持数组,Object类的输出。第二个参数为信息扩展,一般是信息分类,比如:SQL Error、IP地址、当前调用方法__method__,然后通过grep即可进行日志筛选查询:grep -rIn "SQL Query" debug.log
log::info()
消息 输出
log::notice()
提示 输出
log::debug()
调试 输出
log::warning()
警告 输出
log::error()
异常 输出
下面是一个简单例子,和控制台的输出结果。结果会因为浏览器不一样而样式不同,效果上是一样的。
// 以下代码全局都可以使用
log::info('order start');
// 可以传数组,也可以传对象,对象会先转化为数组,再转化为json字符串
log::notice(array('cc'=>'dd'));
// debug里面很多信息,SQL Query分类一下,日志查询可以用 grep -rIn "SQL Query" debug.log
log::debug('SELECT * FROM `user`', 'SQL Query');
log::error('this is a error');
log::warning('ss');
另外log
调试类中还支持time,memory的输出,信息会输出到debug.log,可以使用其对代码性能做优化。
// 开始结尾处加上时间 和 memory 就可以获取中间程序消耗的性能了
log::time('start-time');
log::memory('start-memory');
log::debug('do something');
log::time('end-time');
log::memory('end-memory');
日志调试
平台的日志目录在data/log/
,请确保该目录有写权限
记录会生成在{错误类型}.log
文件中,如:info.log
、debug.log
、warn.log
、error.log
系统程序错误也都会在error日志中显示,如页面出现500时可在错误日志中查看定位
Last updated
Was this helpful?