xdebug - 远程日志时间错误

xdebug - 远程日志时间错误

我注意到 xdebug 日志时间总是早两个小时。例如,它说日志是在上午 7:15 创建的,尽管现在是上午 9:15。

如果我date在终端中执行,那么我会得到上午 9:15

答案1

根据您对当前情况的评论Thu Aug 1 15:13:26 CEST 2019,我的理论是 xdebug 日志在 UTC 中运行(或记录),比 CEST 早两个小时。不幸的是,时区似乎不是输出的一部分;正如您所看到的,这使得任何交叉引用的实际时间都变得模糊。

我找到了一个堆栈溢出帖子其中提到将date.timezone值设置为您想要的时区。它还说:

最好在文件(php.ini)末尾加载 xdebug 扩展。

php.ini 指令列表表示 的默认值为date.timezone空,这可能会回退到 UTC。

CEST由于不是有效值,我的建议是从以下位置选择您的区域此有效 PHP 欧洲时区列表(或南极洲或非洲,视情况而定)。有关更多信息,请参阅PHP 支持的时区的完整列表

答案2

date.timezone即使我设置好了php.inixdebug.ini随后加载,我也无法让它工作。

我的 Xdebug 日志(在 Xdebug 3 中不再称为“远程日志”)仍然显示UTC时间。除了编辑 Xdebug 源代码并重新编译之外,我找不到任何方法来更改此设置。我在 Xdebug 的源代码中没有看到任何可以将时间转换为本地时间的内容,所以也许这是唯一的方法。

我的计算器答案我自己的问题以了解更多详细信息。但这是要点。

我所要做的就是在第 196 行左右更改gmtime()localtime()in src/lib/timing.cfunction char* xdebug_nanotime_to_chars

这可行,但我希望在日志中打印时区代码。

为此,我必须进行更多更改。我创建了一个函数来返回时区字符串,然后将该函数添加到同一文件 ( src/lib/log.c) 中的日志打开/关闭函数中。

相关内容