google 云任务没有可用的日志?

No logs available for google cloud tasks?

我在 Google App Engine 中设置了一个非常基本的 Flask 应用程序:

from flask import Flask
app = Flask(__name__)

@app.route("/<id>")
def hello(id):
    print("Got this id: {}".format(id))
    return "Hello World: {}".format(id)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8080, debug=True)

我在我的终端中通过 运行 启用了日志记录:gcloud beta tasks queues update [QUEUE_ID] --log-sampling-ratio=1.0

我故意通过向我的 Flask 端点添加 POST 请求来触发错误。我在我的队列中看到这个任务重试了很多次,但是当我点击日志时,我看到了这个(任务名称和队列名称有意为这个屏幕截图修改):

我期待看到我从 gcloud app logs read 得到的错误,它是: 2019-11-18 16:27:59 default[20191118t002408] "POST /example_task_handler" 405

我做错了什么?

更新:我确实在 Google App Engine 日志中看到了我正在寻找的日志,但是当我点击失败的 POST 请求的日志时,我没有看到任何东西重试的任务。

  1. 您是否将队列名称 ("my-queue-name") 分入 gcloud beta tasks queues update [QUEUE_ID] --log-sampling-ratio=1.0 中的 [QUEUE_ID]?
  2. 在任务控制台中,您看到有尝试吗?
  3. 您是否尝试加载旧的或更新的日志?
  4. 您是否正在为您的任务使用 App Engine 目标?

另一种查找日志的方法是使用 Stackdriver 中的 Cloud Tasks Queue 选择器。

原来这个问题是双重的。

  1. 我需要使用 python logging 库,所以我切换到 logging.info('Got this id: {}'.format(id))
  2. python 的默认日志记录是警告和更高级别,所以我需要指定它应该打印所有内容,我这样做了:
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)

(之所以可行,是因为 DEBUG 是最低的日志记录级别)。