我是GAE的新手,并且无法弄清楚如何将“print”语句配置到日志记录控制台而不是浏览器。例如:
class Feed(webapp.RequestHandler):
def post(self):
feeditem = Feeditem()
feeditem.author = self.request.get('from')
feeditem.content = self.request.get('content')
feeditem.put()
notify_friends(feeditem)
self.redirect('/')
def notify_friends(feeditem):
"""Alerts friends of a new feeditem"""
print 'Feeditem = ', feeditem
当我执行上述操作时,notify_friends中的print输出到浏览器并以某种方式阻止调用它的post方法中的self.redirect('/')。评论它可以纠正这个问题。
有没有办法改变这种行为?
编辑:Google App Engine代码已删除,因为这是常规。
答案 0 :(得分:3)
您应该使用logging
模块,如下所示:
import logging
def notify_friends(feeditem):
"""Alerts friends of a new feeditem"""
logging.info('Feeditem = %s', feeditem)
您可以使用各种日志记录级别,从debug
到critical
。但是,默认情况下,App Engine SDK仅显示级别info
及更高级别的日志消息,这就是我在此处建议的内容。如果需要,您可以要求它向您显示debug
消息,但您可能会被无用的(对您)记录信息所淹没,至少在SDK中运行时是这样。
有关详细信息,请参阅the logging module docs。
哦,使用logging
模块的好处是,您可以在应用程序的App Engine仪表板的“日志”部分下访问生产中的日志消息。
答案 1 :(得分:2)
这不仅仅是GAE的问题。这是一个普遍的问题。您无法打印出HTML,然后尝试使用重定向标头。你的问题的答案是否定的,你不能改变行为。你到底想要达到什么目的?您可能能够以不同的方式获得您想要的东西。