如何在谷歌应用引擎中执行打印命令?

时间:2011-04-07 10:19:37

标签: google-app-engine

我正在谷歌应用引擎上进行开发,我想打印出从浏览器发送到服务器的值。当我在我的处理程序中插入打印命令时,在运行本地服务器的控制台上不会打印任何内容!

我如何解决这个问题?

加特

5 个答案:

答案 0 :(得分:8)

使用logging模块,而不只是print输出值。这通常是一种很好的做法,因为这意味着即使在生产模式下运行,您也可以留下一些方便的调试输出。

import logging
logging.error("This is an error message that will show in the console")

默认情况下,dev_appserver.py不会在日志级别的INFO下显示任何消息,但您可以使用--debug标志运行dev_appserver.py,然后您将能够看到来自较低{{1}的输出在您的代码中调整和分散各种日志记录调用,如:

logging.DEBUG

如果您将应用程序投入生产后将其保留,那么这些内容将显示在日志部分的应用程序管理区域中。

答案 1 :(得分:1)

正如@Chris Farmiloe建议您应该使用日志记录模块。谷歌appengine默认支持日志modlue。您可以在appengine控制台中查看应用程序的各种级别的日志。记录模块在生产环境中派上用场。在哪里可以看到所有日志。 有关一般信息,请使用

logging.info('This is just for information')

答案 2 :(得分:0)

self.response.out.write("Hallo World")

答案 3 :(得分:0)

使用Go语言(我不知道这是否适用于其他语言),您可以通过appengine.Context.Debugf函数来实现 https://developers.google.com/appengine/docs/go/reference#Context

func yourfunction (r *http.Request){
    c := appengine.NewContext(r)
    c.Debugf("%v\n","Your message")
    ....
}

您可能必须在开发服务器中设置最小log_level:

dev_appserver.py --log_level debug [your application]

答案 4 :(得分:-1)

当我想要快速而肮脏的方式打印出一些信息时,我会这样做:

assert False, "Helpful information"

获取所需信息后,我删除该行。