【问题标题】:View the arguments of a POST-Request in Google App Engine logs在 Google App Engine 日志中查看 POST 请求的参数
【发布时间】:2016-06-27 13:26:56
【问题描述】:

我有一台运行在 Google App Engine 上的服务器。

我正在通过控制台查看服务器的请求日志。

它们位于Google Cloud Platform --> Stackdriver Logging --> Logs 下。

我想查看 POST-Request 的参数。


使用 GET 请求很容易,因为它们在条目的标题中可见。

它们在条目的正文中也是可行的,在 protoPayload --> resource 下。

但是,使用 POST 请求时,它们将无处可寻。

这是我的选择:

  • metadata
  • protoPayload
  • insertId
  • log
  • httpRequest
  • operation

这些选项似乎都不包含请求的参数。

来自this answer,我了解到它们应该在请求正文中。

如何在 GAE 日志中找到它们?

【问题讨论】:

  • 出于安全原因,我不相信 POST 参数会自动显示在日志中。您不希望用户可能在日志文件中可用的站点上发布的用户名/密码。您可以在代码中使用 logger.info 将请求参数显式输出到应用引擎代码中的日志。
  • @JeffDeskins:好的,所以这将被视为应用程序日志,而不是请求日志,对吧?
  • @barakmanos,这两个日志是一回事。使用 'logging.info 会将其他信息添加到您正在查看的 Stackdriver 日志中。
  • @Kekito:据我了解,请求日志是自动出现的(即,为服务器收到的每个请求生成),应用程序日志(确实)是从我的@987654331 生成的@ 操作。所以这些日志与我的理解不同。那是对的吗?我是否必须做logging 才能获得任何 POST 请求的参数?谢谢。
  • @barakmanos,不,这是不正确的。 logging.info() 显示在 Stackdriver 请求日志中,这是查看 POST 参数的唯一方法。试试吧!

标签: http google-app-engine post http-post httprequest


【解决方案1】:

请求日志中不显示发布请求数据。

在您的应用中,您必须明确记录它

logging.log(myRequest.PostData)

编辑:请小心记录敏感的客户信息。

【讨论】:

  • 应该在哪里应用@robert king?我找不到它。
  • 在您的请求处理程序中。取决于您使用的网络框架,但搜索如何记录
  • 你也可以尝试“打印”,虽然日志记录更好
  • 我已经搜索了很多,但我仍在努力实现这一目标。我正在运行一个具有灵活环境的 PHP 应用程序。文档真的很差。我应该在哪里看?提前致谢。
  • cloud.google.com/appengine/docs/standard/php/logs 看来你可以使用 echo 或 syslog
猜你喜欢
  • 2021-02-25
  • 2020-11-13
  • 2013-08-15
  • 2020-05-04
  • 1970-01-01
  • 2013-05-02
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多