- socketlog的使用范围
- socketlog比较适用于ajax调试和api的调试,经典应用莫不过于微信众多的api使用调试,使用socketlog可以很条理清楚的查看到api传递的参数,加载的性能,错误调试等等方面,所以掌握socketlog的安装和使用对微信公众号开发等api型开发来说就正如常言道磨刀不误砍柴工
- socketlog 安装
- 客户端安装插件
插件下载地址:https://github.com/luofei614/SocketLog
浏览器安装插件:
在chrome浏览器中地址栏中输入chrome://extensions/
将下载文件中的chrome.crx拖入到窗口中即可完成插件安装
2.服务器端安装nodejs
(1)首先安装nodejs,在linux端的话,直接到 http://nodejs.cn/download/,选择对应的版本下载即可,然后用ftp将压缩包上传到服务器端
(2)安装nodejs
#解压压缩包 tar -zxv -f node-v0.10.29-linux-x64.tar.gz #修改目录 mv node-v0.10.29-linux-x64 node #建立软连接(建议使用绝对路径,如使用相对路径,必须是相对本文件查找到目的文件的位置) ln -s /home/node/bin/npm /usr/local/bin/ ln -s /home/node/bin/node /usr/local/bin/ #测试成功 node -v #如果出现版本即为安装成功
3.服务器端socketlog的安装
(1) 启用Websocket服务,该服务是nodejs写的,在server目录下,请先确保你的环境已经安装nodejs, 启动Websocket服务运行命令 node server/index.js , 将会在本地起一个websocket服务 ,监听端口是1229 (如果是阿里云服务器需要在安全组添加1229的规则)。如果想服务后台运行: nohup node server/index.js > /dev/null &
3.配置
(1)在服务器的入口文件需要加入引入代码
if(!function_exists('slog')){ include './php/slog.function.php'; //配置 slog(array( 'host' => 'localhost',//websocket服务器地址,默认localhost 'optimize' => true,//是否显示利于优化的参数,如果运行时间,消耗内存等,默认为false 'show_included_files' => true,//是否显示本次程序运行加载了哪些文件,默认为false 'error_handler' => true,//是否接管程序错误,将程序错误显示在console中,默认为false 'force_client_ids' => array(//日志强制记录到配置的client_id,默认为空,client_id必须在allow_client_ids中 'paint', //'client_02', ), 'allow_client_ids' => array(//限制允许读取日志的client_id,默认为空,表示所有人都可以获得日志。 'paint', //'client_02', //'client_03', ), ),'config');//输出日志 }
设置client_id
: 在chrome浏览器中,可以设置插件的Client_ID
,Client_ID
是你任意指定的字符串。
4.实现对数据库进行调试
(1)SocketLog还能对sql语句进行调试,自动对sql语句进行explain分析,显示出有性能问题的sql语句
$link=mysql_connect( 'localhost:3306' , 'root' , '123456' , true ) ; mysql_select_db('kuaijianli',$link); $sql="SELECT * FROM `user`"; slog($sql,$link);
(2)在tp框架中,只需要在/ThinkPHP/Library/Think/Db/Driver.class.php
的 query 和execute 方法中
添加slog($this->queryStr,$this->_linkID)即可