如何在Google App Engine中写入控制台?

时间:2009-04-07 20:14:52

标签: python google-app-engine logging

通常当我编码时,我只想将小东西(主要是变量的当前值)打印到控制台。我没有看到Google App Engine的这类内容,但我注意到Google App Engine Launcher确实有一个Log终端。有没有办法使用Google App Engine写入所述终端或其他终端?

11 个答案:

答案 0 :(得分:67)

您需要使用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

您可以通过双击应用然后将其放入 Extra Flags 字段来添加标记。

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

答案 1 :(得分: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))

答案 2 :(得分:9)

@Manjoor

你可以在java中做同样的事情。

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.");
    }
}

请参阅http://code.google.com/appengine/docs/java/runtime.html

中的“记录”

答案 3 :(得分:4)

如果您使用的是更新版本的Python Development Server(版本> 1.7.6,或2013年3月及更高版本),这些似乎是正确的使用步骤:

  1. 在脚本中包含以下内容,

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

  2. 根据this docs page,通过转到编辑>设置标记。应用程序设置>启动设置>额外的命令行标志,并添加,

    --log_level=debug

答案 4 :(得分:2)

你也应该给FirePython看一看。它允许您在firebug中获取服务器日志消息。

http://appengine-cookbook.appspot.com/recipe/firepython-logger-console-inside-firebug/

答案 5 :(得分:1)

在我的网站Learn Python上查看我在Google App Engine上运行的在线Python解释器。它可能正是你要找的东西。只需对要查看的内容使用print repr(变量),并根据需要执行多次。

答案 6 :(得分:1)

您好我使用的是GoogleAppEngineLauncher的1.8.6版,您可以使用一个标志来设置您想要查看的消息日志级别,例如调试消息:

--dev_appserver_log_level debug

使用它而不是--debug(参见@Christopher回答)。

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

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

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

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

答案 9 :(得分:0)

我希望我回答这个问题。日志消息打印到AppEngine日志而不是终端。

你可以启动它 by clicking on the logs button of the AppEngine Launcher

答案 10 :(得分:0)

Using the logging module is good practice,,但这不是必需的。

您只需执行简单的print()即可写入Google App Engine日志控制台。