10

我是 GAE 新手,因此这个问题对于 GAE 专家来说可能很容易。

我有灵活的 App Engine,MySQL 2nd Gen 5.7 的 SQL 实例

我在 GAE 上托管了我的 laravel 应用程序,并按照教程进行操作:在 Google App Engine 柔性环境中运行 Laravel

我无法正确获取第一页,我收到 500 错误,我的应用 URL:Its About Veg

我想调查错误,就像我可以在本地机器上做的那样,但我无法获得正确的日志。

我发现它从https://console.cloud.google.com/logs/viewer?project=project-idURL 给出了 500 响应,但我无法获得错误的正确堆栈跟踪,我在这里得到的唯一东西是某种JSON数据。

此外,我想从服务器下载日志文件,以便我可以手动检查日志并解决问题,但是唉!我也找不到。

在这种情况下,你能帮帮我吗?

4

1 回答 1

17

从 App Engine 检索日志有多种方法。

您可以尝试使用该gcloud app logs 命令来检索应用程序的日志。例如,要将日志输出到您的终端,您可以运行:

$ gcloud app logs read

或者流式传输您可以运行的日志:

$ gcloud app logs tail

也可以将日志数据从您的应用程序下载到本地计算机上的文件中。如果您安装App Engine SDK for PHP,您可以运行该appcfg.py request_logs命令,这将允许您下载日志。有关如何执行此操作的说明,我建议您查看此处

您还可以使用 GCP 日志页面执行一些细粒度的搜索(有一种方法可以导出下载这些日志,我将在下面详细介绍)。

Google Cloud Platform for App Engine 中的日志以及所有其他 Google Cloud Platform 资源都可以在 Stackdriver Logging 中查看。

要在控制台中导航到 Stackdriver Logging,请导航到:

记录 > 日志

在那里,您会发现几个下拉菜单。在第一个中,您将能够选择要查看其日志的 Google Cloud Platform 资源。

在此下拉菜单中,选择GAE Application。这将确保在第二个下拉菜单中填充可从您的 GAE 应用程序查看的各种日志的名称。例如,您可以在此菜单中指定 nginx.error 或 syslogs 来过滤特定日志。

您的应用日志文件中的日志会流式传输到 Stackdriver 日志记录中,因此它们本质上包含与应用日志相同的信息,尽管采用 JSON 格式以确保它们可读。

同样,您可以过滤 CloudSQL 日志。为此,请在第一个下拉菜单中选择 Cloud SQL 数据库,然后指定要检查的数据库。

日志视图中的其他下拉菜单允许您选择各种日志级别(例如“错误”、“警告”、“严重”等)和时间设置,允许您指定时间/日期以进行更精细的搜索。

您还可以选择在 Stackdriver Logging 搜索栏中输入搜索字符串,并使用它们来过滤显示的日志。

如果您想下载这些日志,一个选项是创建一个到 Google Cloud Storage 的日志接收器。这实质上允许您编写过滤器(针对您感兴趣的日志)并将日志导出到 Cloud Storage。如果需要,您可以选择从 Cloud Storage 下载日志。

这里这里有一些关于设置日志接收器的有用信息。

于 2018-03-04T08:32:33.777 回答