【TP5 :错误和调试】远程调试

版权声明:本文为ywcmoon原创文章,未经允许不得转载。 https://blog.csdn.net/qq_39251267/article/details/82499671

远程调试

ThinkPHP5.0版本开始,提供了Socket日志驱动用于本地和远程调试

Socket调试

在配置文件中设置如下:

'log' =>  [
    'type'                => 'socket',
    'host'                => 'slog.thinkphp.cn',   
    //日志强制记录到配置的client_id
    'force_client_ids'    => [],
    //限制允许读取日志的client_id
    'allow_client_ids'    => [],
]

host配置地址官方提供的公用服务端,需申请client_id

使用Chrome浏览器运行后,打开审查元素Console
这里写图片描述

SocketLog通过websocket将调试日志打印到浏览器的console

安装Chrome插件

SocketLog 需安装chrome插件

使用方法

  • 在chrome浏览器上安装好插件
  • 安装服务端:npm install -g socketlog-server , 启动服务:socketlog-server
    将会在本地起一个websocket服务 ,监听端口是1229
  • 如果想服务后台运行: socketlog-server > /dev/null &

参数

  • 在chrome浏览器设置插件的Client_ID (任意指定的字符串)

  • 设置 client_id 后能实现以下功能:

  • 1.配置allow_client_ids
    让指定的浏览器获得日志,这样就可以把调试代码带上线。 普通用户访问不会触发调试,不会发送日志。 开发人员访问就 能看的调试日志, 这样利于找线上bug。 Client_ID 建议设置为姓名拼音加上随机字符串

//示例代码
'allow_client_ids'=>['thinkphp_zfH5NbLn','luofei_DJq0z80H'],
  • 2.设置force_client_ids
    让后台脚本也能输出日志到chrome
    网站有可能用了队列,一些业务逻辑通过后台脚本处理, 如果后台脚本需要调试,你也可以将日志打印到浏览器的console中, 当然后台脚本不和浏览器接触,不知道当前触发程序的是哪个浏览器,所以我们需要强制将日志打印到指定client_id的浏览器上面。 我们在后台脚本中使用SocketLog时设置force_client_ids 配置项指定要强制输出浏览器的client_id 即可

猜你喜欢

转载自blog.csdn.net/qq_39251267/article/details/82499671