1. socketlog的使用范围 
    1. socketlog比较适用于ajax调试和api的调试,经典应用莫不过于微信众多的api使用调试,使用socketlog可以很条理清楚的查看到api传递的参数,加载的性能,错误调试等等方面,所以掌握socketlog的安装和使用对微信公众号开发等api型开发来说就正如常言道磨刀不误砍柴工
  2. socketlog 安装
    1. 客户端安装插件

        插件下载地址: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)即可

    

  

socketlog的安装和使用的更多相关文章

  1. 谷歌浏览器安装 socketLog

    第一步(本地浏览器安装调试扩展) 下载扩展包并解压 链接:https://pan.baidu.com/s/14df0ewl_3wjRHc8H1jsrWQ提取码:yyu1 打开谷歌浏览器,地址栏输入 c ...

  2. 微信调试、API、AJAX的调试 SocketLog

    SocketLog适合Ajax调试和API调试, 举一个常见的场景,用SocketLog来做微信调试, 我们在做微信API开发的时候,如果API有bug,微信只提示"改公众账号暂时无法提供服 ...

  3. 通过SocketLog快速分析OneThink程序

    通过SocketLog快速分析OneThink程序 http://www.thinkphp.cn/topic/10846.html   浏览:2332 发布日期:2014/02/08 分类:技术分享 ...

  4. socketlog

    说明 SocketLog适合Ajax调试和API调试, 举一个常见的场景,用SocketLog来做微信调试, 我们在做微信API开发的时候,如果API有bug,微信只提示“改公众账号暂时无法提供服务, ...

  5. 通过SocketLog快速分析php程序

    转载自http://www.thinkphp.cn/topic/10846.html 正在运行的API有bug,不能var_dump进行调试,因为会影响client的调用.这时候用SocketLog最 ...

  6. CentOS安装使用.netcore极简教程(免费提供学习服务器)

    本文目标是指引从未使用过Linux的.Neter,如何在CentOS7上安装.Net Core环境,以及部署.Net Core应用. 仅针对CentOS,其它Linux系统类似,命令环节稍加调整: 需 ...

  7. centos下安装nodejs及websocket

    软件环境: VMware Workstation CentOS 6.5 NodeJS v0.12.5 安装过程: Step 1.确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安 ...

  8. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  9. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

随机推荐

  1. syntax error, unexpected '['

    在用ThinkPHP框架做了个小的应用 我在本地搭建的服务器,进行测试好着的. 但是放到别的地方后,出现以下报错 syntax error, unexpected '[' 错误位置是在我自己写的一个A ...

  2. Python3 的分支与循环

    1:条件分支 if 条件 : 语句 else: 语句 2.缩写 else: if : 可以简写为 elif ,因此Python 可以有效的避免"悬挂else" 举例: #悬挂els ...

  3. Git学习记录--git仓库

    Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...

  4. ios知识点总结——UITableView的展开与收缩及横向Table

    UITableVIew是iOS开发中使用最为广泛的一种控件,对于UITableView的基本用法本文不做探讨,本文主要是针对UITableView的展开与收缩进行阐述,在文章的后面也会探讨一下横向ta ...

  5. SQL中MAX()

    列column_name中的数据可以是数值.字符串或是日期时间数据类型.

  6. Django之Model组件

    Model组件在django基础篇就已经提到过了,本章介绍更多高级部分. 一.回顾 1.定义表(类) ##单表 from django.db import models class user(mode ...

  7. python_print和input

    什么是输入? --用户从键盘.鼠标或其他终端 输入 的数据 -- input("提示信息") --python 2.7 rqw_input("提示信息") 如何 ...

  8. python_如何修改装饰器中参数?

    案例: 为分析程序内哪些函数执行时间开销较大,我们需定义一个带timeout参数的装饰器 需求: 统计被装饰函数的运行时间 时间大于timeout时,将此次函数调用记录到log日志中 运行时可以修改t ...

  9. secureCRT sftp使用

    sftp-- help 可用命令: cd 路径 更改远程目录到"路径" lcd 路径 更改本地目录到"路径" chgrp group path 将文件" ...

  10. Calendar使用方法

    Calendar类的静态方法getInstance()可以初始化一个日历对象: Calendar now = Calendar.getInstance(); 可以使用下面三个方法把日历定到任何一个时间 ...