gpt4 book ai didi

python - 使用 Flask 的 StackDriver 错误报告中未显示 Google App Engine 错误

转载 作者:行者123 更新时间:2023-11-28 17:11:26 25 4
gpt4 key购买 nike

我正在使用 Google App Engine 标准环境来托管 python-flask-application,但在 StackDriver 错误报告中显示错误时遇到了问题。默认情况下,Google App Engine 应该将错误记录到 StackDriver 错误报告,但它没有。

在 StackDriver 错误报告中出现之前,我遇到过错误,但我无法重现。错误似乎直接进入服务器错误部分,而不是应用程序错误。但在我看来,两者都记录在 StackDriver 错误报告中似乎合乎逻辑。

我做了一些调试,以便使用路由 /error/500 让它工作。结果如下:

  • 错误显示在 Google App Engine 概览中: All Google App Engine Errors
  • 两者都在日志中可见: Errors visible in logs
  • 但 StackDriver 错误报告中没有显示任何内容: No errors in StackDriver Error Reporting

有人知道为什么会这样吗?

更新:我发现使用 flask.logger 似乎是问题所在。使用 logging 工作正常并最终出现在 StackDriver 错误报告中(某些格式问题除外)。不过,两者最终都会出现在记录器中。我正在使用 logging.StreamHandler 通过 addHandler 注册到 flask.logger。我最好的猜测是 logging.StreamHandler 的格式有问题。进一步调查。

最佳答案

在使用 Google App Engine SDK 进行一些挖掘和调试之后,我发现有一个用于 GAE 的日志处理程序:

google.appengine.api.app_logging.AppLogsHandler

Google App Engine 向 logging 注册一个,但不向 flask.logger 注册。因此,例如,如果您使用 app.logger.error(my_error),它不会注册到 StackDriver 错误报告。

现在我手动注册一个解决了这个问题:

from google.appengine.api.app_logging import AppLogsHandler
app.logger.addHandler(AppLogsHandler())

app.logger.error(my_error)

关于python - 使用 Flask 的 StackDriver 错误报告中未显示 Google App Engine 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47260848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com