AppEngine获取/查看日志

时间:2019-10-04 23:32:08

标签: google-app-engine logging gcloud

我在AppEngine(Java)中运行我的应用程序。 我想使用gcloud app logs命令查看我的应用程序日志:

gcloud app logs tail

但是,输出的数据如下:

....
2019-10-04 12:46:43 default[api-v1-0-0]  "GET / HTTP/1.1" 200
2019-10-04 12:46:43 default[api-v1-0-0]  "GET / HTTP/1.1" 200
....

实际上,我希望gcloud app logs将显示我的应用程序打印到stdout和stderr的日志。但是,事实并非如此。

我的问题是:如何使用gcloud命令获取/查看应用程序stdout / stderr日志?

2 个答案:

答案 0 :(得分:2)

来自gcloud app logs tail

  

说明

     

为App Engine应用流式传输日志。

该命令被设计为阻塞调用,主要是在调用该命令后之后监视正在生成的应用日志(尽管在启动时它可能还会显示一些在 before < / em>命令发出)。

要主要关注要使用gcloud app logs read命令的历史日志:

  

说明

     

显示来自stdout,stderr和崩溃日志的最新日志条目   可读格式的当前Google App Engine应用。

请注意,日志中stdout / stderr的存在取决于应用程序使用的环境和运行时。例如,在第一代标准环境中(至少在python运行时中),直接打印到stdout / stderr的消息未显示在日志中,必须专门使用python日志记录调用。

我怀疑Java也可能如此,因为我在Java11(和flex environment)的日志记录文档中提到了stdout / stderr,但在Java8中却没有。

答案 1 :(得分:0)

我也无法使用

> gcloud app logs tail

但是我发现您可以使用:

 gcloud logging logs list

这将返回如下日志名称列表:

  

NAME
  projects / intan1 / logs / appengine.googleapis.com%2Frequest_log   projects / intan1 / logs / cloudaudit.googleapis.com%2Factivity

然后您可以致电:

gcloud beta logging read logName=projects/intan1/logs/appengine.googleapis.com%2Frequest_log

这将返回日志,其中包含许多其他信息,但这也许可以为您提供帮助!