2009-04-07 79 views
46

通常当我编码时,我只是想将小东西(主要是变量的当前值)输出到控制台。尽管我注意到Google App Engine Launcher确实有一个Log终端,但我没有看到Google App Engine的任何内容。有没有办法使用Google App Engine写信给上述终端或其他终端?如何在Google App Engine中写入控制台?

回答

64

您将要使用Python的标准logging模块。

import logging 

logging.info("hello") 
logging.debug("hi") # this won't show up by default 

要看到GoogleAppEngineLauncher日志控制台呼叫logging.debug(),你必须先旗--dev_appserver_log_level=debug添加到您的应用程序。但是,请注意,您将看到来自App Engine SDK本身的大量调试噪声。该full set of levels是:

  • debug
  • info
  • warning
  • error
  • critical

您可以通过双击应用程序,然后拖放到该添加标志额外的标志字段。

Adding the --dev_appserver_log_level flag to your app in the GoogleAppEngineLauncher

31

https://cloud.google.com/appengine/docs/python/requests#Python_Logging
http://docs.python.org/library/logging.html

你可能想使用类似:

logging.debug("value of my var is %s", str(var)) 
+1

我该怎么做相同的java吗? – Manjoor 2010-06-26 12:33:47

+14

您很可能想使用logging.info()而不是logging.debug(),因为GoogleAppEngineLauncher Logs控制台中的默认日志记录级别是这样的,您将看不到任何对logging.debug()的调用。 – 2012-03-12 00:26:26

1

看看我在我的网站,Learn Python在谷歌App Engine上运行的在线Python解释器

import java.util.logging.Logger; 
// ... 

public class MyServlet extends HttpServlet { 
    private static final Logger log = Logger.getLogger(MyServlet.class.getName()); 

    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws IOException { 

     log.info("An informational message."); 

     log.warning("A warning message."); 

     log.severe("An error message."); 
    } 
} 

请参阅 “登录”。这可能是你正在寻找的东西。只需在您想要查看的内容上使用print repr(变量),并根据需要执行多次。

0

GAE将捕获标准错误,并将其打印到控制台或日志。

print >> sys.stderr, "Something to log." 
0

使用log.setLevel(Level.ALL)以查看消息

的默认消息过滤级别似乎是 '错误'。在我使用setLevel()方法使.info和.warning消息可见之前,我没有看到任何有用的日志消息。

打印到System.out的文本也没有显示出来。它似乎被解释为log.info()级别的消息。

1

你好,我使用的版本GoogleAppEngineLauncher的1.8.6,您可以使用一个标志设置的邮件日志,你希望看到的水平,例如用于调试消息:

--dev_appserver_log_level debug

使用它而不是--debug(请参阅@Christopher答案)。

4

如果你正在使用Python开发服务器的最新版本(版本> 1.7.6,或擦伤2013年和更高版本),这似乎是正确的步骤来使用:

  1. 包括在脚本以下,

    import logging logging.debug("something I want to log")

  2. 而且每this docs page,通过去编辑>应用程序设置>启动设置>附加的命令行标志,并增加设置一个标志,

    --log_level=debug