2010-09-23 120 views
0

我是GAE的新手,并且一直无法弄清楚如何将“打印”语句配置到日志控制台而不是浏览器。例如:如何停止使用Google App Engine输出到浏览器的“打印”?

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输出到浏览器并以某种方式打印防止在后方法调用它的self.redirect(“/”)。评论它纠正了这个问题。

有没有办法改变这种行为?

编辑︰谷歌应用程序引擎标记删除,因为这是一般。

回答

3

您应改用logging模块,像这样:

import logging 
def notify_friends(feeditem): 
    """Alerts friends of a new feeditem"""  
    logging.info('Feeditem = %s', feeditem) 

有多种日志记录级别的可以使用,从debugcritical。但是,默认情况下,App Engine SDK仅显示日志消息级别info及以上,所以这就是我在这里所建议的。如果需要,您可以要求它向您显示debug消息,但您可能会被无用的(至您的)日志信息淹没,至少在SDK中运行时是如此。

有关更多信息,请参阅the logging module docs

哦,关于使用logging模块的好处在于,您可以在应用程序的App Engine仪表板的“日志”部分的生产环境中访问日志消息。

+0

完美 - 谢谢。 – Joe 2010-09-23 22:53:57

2

这不仅仅是GAE的一个问题。这是一个普遍问题。您不能打印出HTML,然后尝试拥有重定向标头。你的问题的答案是否定的,你不能改变行为。你究竟想达到什么目的?你可能能够以不同的方式得到你想要的东西。

+0

我只是试图使用打印来调试,因为我去。有没有一种方法可以防止使用重定向头? – Joe 2010-09-23 22:46:09

+0

使用其他答案中所示的日志记录 – 2010-09-23 22:51:18

相关问题