【问题标题】:PHP error log spammed by Xdebug Time-out messages由 Xdebug 超时消息发送的 PHP 错误日志
【发布时间】:2021-09-06 11:50:40
【问题描述】:

步进调试器工作正常,没有问题。

每次我在 VS 代码中工作而不监听来自 xdebug 的任何传入连接时,PHP 都会在我刷新页面时将此消息写入我的日志:

[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) :-(

由于我不喜欢从我的日志中删除数百条不相关的消息,我想知道是否可以禁用此特定消息? 我真的在文档中找不到任何关于此的内容。

使用set_error_handler 覆盖行为是一种选择,但我想保持干净:)

【问题讨论】:

    标签: php logging xdebug xdebug-3


    【解决方案1】:

    在 Xdebug 3.0 中,您不能对这条消息执行此操作。

    但是在 Xdebug 3.1(beta1 将在一小时内发布)中,您可以将 Xdebug 的 xdebug.log 设置为可写文件(或者甚至可能是 /dev/null,我还没有尝试过)。如果 Xdebug 日志处于活动状态,那么 Xdebug 将不再将这些超时消息引导至 PHP 的错误机制,因此它们不会显示在日志中。

    这是相关问题:https://bugs.xdebug.org/view.php?id=1948

    FWIW,您可能无法在此处使用 set_error_handler 执行某些操作,因为它是内部 Xdebug 调用,不会通过 PHP 错误机制。

    【讨论】:

    • 哇,这个人很快就给出了答案。非常感谢!现在我将坚持覆盖错误处理程序,因为我喜欢主要版本的稳定性。讨论中还提到了 PHP 版本 8.0.0-8.0.4。不确定它是否相关,但我仍在 7.4 上。很高兴知道此请求已包含在未来版本中。
    • 错误处理技巧很可能不起作用。 Xdebug 3.1 将支持 PHP 7.2 及更高版本:xdebug.org/docs/compat
    • @DerpyNerd 另请查看stackoverflow.com/a/65264131/783119
    • 嗨@LazyOne,这是一个非常好的答案。我确实有正确的日志设置(如果需要,每个子目录的日志文件)并且 Xdebug 设置为仅连接到我的一些同事和我的计算机。就像德里克说的。我现在可以禁用 xdebug 日志记录。我什至没有想到最简单的解决方案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2012-10-26
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多