【问题标题】:How do I write to the console in Google App Engine?如何在 Google App Engine 中写入控制台?
【发布时间】:2010-10-18 03:56:39
【问题描述】:

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

【问题讨论】:

    标签: python google-app-engine logging


    【解决方案1】:

    您需要使用 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字段来添加标志。

    【讨论】:

    • 这是最有帮助的回复。值得关注
    • 根据this more recent answer,你应该使用额外的标志--log_level=debug而不是--debug
    • 谢谢,@JesseWebb。已更新。
    • 我正在尝试将我的日志级别设置为警告以隐藏 INFO 噪音,但它不起作用。有什么想法吗?
    • 原来 --dev_appserver_log_level=warning 是正确的设置
    【解决方案2】:

    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))
    

    【讨论】:

    • 我如何在 java 中做同样的事情?
    • 您很可能希望使用 logging.info() 而不是 logging.debug(),因为 GoogleAppEngineLauncher 日志控制台中的默认日志级别是这样的,您不会看到任何日志调用.debug().
    • Python GAE 日志记录的第一个链接已损坏。应该更新为cloud.google.com/appengine/docs/python/requests#Python_Logging
    【解决方案3】:

    @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中的“记录”

    【讨论】:

      【解决方案4】:

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

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

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

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

        --log_level=debug

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

          在我的网站Learn Python 上查看我在 Google App Engine 上运行的在线 Python 解释器。这可能是您正在寻找的东西。只需在要查看的内容上使用 print repr(variable),然后执行任意多次即可。

          【讨论】:

            【解决方案7】:

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

            --dev_appserver_log_level debug

            用它代替--debug(见@Christopher 回答)。

            【讨论】:

              【解决方案8】:

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

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

              【讨论】:

                【解决方案9】:

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

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

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

                【讨论】:

                  【解决方案10】:

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

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

                  【讨论】:

                    【解决方案11】:

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

                    您可以通过简单的print()s 写入 Google App Engine 日志控制台。

                    【讨论】:

                      猜你喜欢
                      • 2023-03-28
                      • 1970-01-01
                      • 1970-01-01
                      • 2016-02-24
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多