如何禁用未开启VS Code调试监听时Xdebug输出的超时PHP错误日志
禁用Xdebug未监听时连接超时错误日志的原生解决方案
对应报错信息:
[06-Sep-2021 13:39:58 Europe/Brussels] Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: 10.1.2.4:9003 (from REMOTE_ADDR HTTP header), localhost:9003 (fallback through xdebug.client_host/xdebug.client_port) :-(
以下两种均为原生配置方案,无需自定义错误处理逻辑:
- 方案1:调整Xdebug启动触发模式(优先推荐)
修改php.ini或对应Xdebug配置文件,将xdebug.start_with_request参数从默认的yes修改为trigger:
调整后Xdebug不会在每次请求启动时自动尝试连接调试客户端,只有当请求携带指定的触发标识(GET/POST/COOKIE中的xdebug.start_with_request = triggerXDEBUG_TRIGGER字段)时才会启动调试逻辑,未开启VS Code监听时不会主动发起连接,自然不会生成对应超时日志。日常开发需要调试时,可安装Xdebug Helper浏览器扩展一键切换触发状态,无需反复修改配置。该方案不会过滤其他正常的错误日志,同时减少不必要的连接尝试开销。 - 方案2:调低Xdebug日志输出级别
如果你确实需要保留每次请求自动尝试连接调试的逻辑,可以调整xdebug.log_level参数过滤低优先级日志:
Xdebug日志级别对应规则为:0仅输出致命错误、1输出错误、2输出警告、3输出通知、4输出信息、5输出调试信息。连接超时属于警告级别的日志,将级别调整为0或1后,该类日志就不会写入错误日志文件,不会影响致命错误、运行错误类信息的记录。xdebug.log_level = 1
内容的提问来源于stack exchange,提问作者DerpyNerd
相关产品推荐
相关产品推荐

