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 请求的日志时,我没有看到任何东西重试的任务。
- 您是否将队列名称 ("my-queue-name") 分入
gcloud beta tasks queues update [QUEUE_ID] --log-sampling-ratio=1.0
中的 [QUEUE_ID]?
- 在任务控制台中,您看到有尝试吗?
- 您是否尝试加载旧的或更新的日志?
- 您是否正在为您的任务使用 App Engine 目标?
另一种查找日志的方法是使用 Stackdriver 中的 Cloud Tasks Queue
选择器。
原来这个问题是双重的。
- 我需要使用 python
logging
库,所以我切换到 logging.info('Got this id: {}'.format(id))
- python 的默认日志记录是警告和更高级别,所以我需要指定它应该打印所有内容,我这样做了:
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
(之所以可行,是因为 DEBUG 是最低的日志记录级别)。
我在 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 请求的日志时,我没有看到任何东西重试的任务。
- 您是否将队列名称 ("my-queue-name") 分入
gcloud beta tasks queues update [QUEUE_ID] --log-sampling-ratio=1.0
中的 [QUEUE_ID]? - 在任务控制台中,您看到有尝试吗?
- 您是否尝试加载旧的或更新的日志?
- 您是否正在为您的任务使用 App Engine 目标?
另一种查找日志的方法是使用 Stackdriver 中的 Cloud Tasks Queue
选择器。
原来这个问题是双重的。
- 我需要使用 python
logging
库,所以我切换到logging.info('Got this id: {}'.format(id))
- python 的默认日志记录是警告和更高级别,所以我需要指定它应该打印所有内容,我这样做了:
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
(之所以可行,是因为 DEBUG 是最低的日志记录级别)。