我正在谷歌应用引擎上进行开发,我想打印出从浏览器发送到服务器的值。当我在我的处理程序中插入打印命令时,在运行本地服务器的控制台上不会打印任何内容!
我如何解决这个问题?
加特
答案 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"
获取所需信息后,我删除该行。