【问题标题】:Google App Engine PHP 7 (standard) error log requestGoogle App Engine PHP 7(标准)错误日志请求
【发布时间】:2020-05-04 19:03:45
【问题描述】:

使用 php 5.5 应用引擎标准时,Stackdriver 中会显示带有请求元数据的错误(见屏幕截图):

使用 php 7 标准,没有元数据:

如何将请求元数据链接到应用引擎 php 7 标准的错误?

【问题讨论】:

    标签: php google-app-engine stackdriver google-cloud-stackdriver google-app-engine-php


    【解决方案1】:

    您应该在 Stackdriver Logging 中拥有所需的数据。正如documentation 中所述:

    当向您在 App Engine 中运行的应用发送请求时,请求和响应详细信息会自动记录下来,并且可以在 Google Cloud Console Stackdriver Logging Logs Viewer 中查看。

    您只需转到Stackdriver Logging 并匹配报告的错误。然后单击expand,您将看到与有问题的请求相关的所有数据。

    您也可以configure the views for the logs,以使它们更多或更少细节,或定义它们的优先级。此外,您可以编写自己的日志,其中包含您想要包含在其中的所有数据:

    当您的应用程序处理请求时,它可以将自己的日志消息写入 stdout 和 stderr。使用 stdout 输出和 stderr 错误来编写应用程序日志。这些文件是自动收集的,可以在日志查看器中查看。

    【讨论】:

    • 谢谢。我知道我仍然可以通过挖掘日志找到请求,但是使用 PHP 5.5 很容易看到导致错误的请求 url。当我使用标准 stderr 时,php 5.5 一切正常,但 php 7 标准将其输出到日志:[error] 20#20: *2 FastCGI sent in stderr: "PHP message: PHP Fatal error: ErrorException: Undefined variable: ... 由于“PHP 致命错误”之前的额外文本,堆栈驱动程序不知道这是一个错误它只是显示为标准日志消息。
    • 这被认为是预期行为,您可以在此处查看 - issuetracker.google.com/issues/144573569。它们将被记录,但它们永远不会在 Stackdriver 中显示为“错误”,
    • 无赖。那么是否有可能让堆栈驱动程序使用 php 7 标准报告带有错误的请求 url?
    • 是的。抛出的日志和异常会报告给 Stackdriver Logging,但它们不会出现在“错误”标签下。所有必要的数据都应该在那里。
    • 但是看我原来的截图,使用php7没有办法让请求url列在栈驱动错误中,对吗?
    猜你喜欢
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 2019-08-08
    相关资源
    最近更新 更多