How do I write to the console in Google App Engine?

Question:

Often when I am coding I just like to print little things (mostly the current value of variables) out to console. I don’t see anything like this for Google App Engine, although I note that the Google App Engine Launcher does have a Log terminal. Is there any way to write to said Terminal, or to some other terminal, using Google App Engine?

Asked By: Stephen Cagle

||

Answers:

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

You probably want to use something like:

logging.debug("value of my var is %s", str(var))
Answered By: vartec

You should also give FirePython a look. It allows you to get server log messages in firebug.

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

Answered By: Sam

@Manjoor

You can do the same thing in 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.");
    }
}

See “Logging” in http://code.google.com/appengine/docs/java/runtime.html

Answered By: Dario Seidl

Check out my online Python interpreter running on Google App Engine on my website, Learn Python. It might be what you’re looking for. Just use print repr(variable) on things you want to look at, and execute as many times as you want.

Answered By: Ron Reiter

You’ll want to use the Python’s standard logging module.

import logging

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

To see calls to logging.debug() in the GoogleAppEngineLauncher Logs console, you have to first add the flag --dev_appserver_log_level=debug to your app. However, beware that you’re going to see a lot of debug noise from the App Engine SDK itself. The full set of levels are:

  • debug
  • info
  • warning
  • error
  • critical

You can add the flag by double clicking the app and then dropping it into the Extra Flags field.

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

Answered By: Chris Calo

GAE will capture standard error and print it to the console or to a log.

print >> sys.stderr, "Something to log."
Answered By: bugloaf

Use log.setLevel(Level.ALL) to see messages

The default message filtering level seems to be ‘error’. I didn’t see any useful log messages until I used the setLevel() method to make the .info and .warning messages visible.

Text printed to System.out wasn’t showing up either. It seems to be interpreted as log.info() level messaages.

Answered By: Ribo

Hello I’m using the version 1.8.6 of GoogleAppEngineLauncher, you can use a flag to set the messages log level you want to see, for example for debug messages:

--dev_appserver_log_level debug

Use it instead of --debug (see @Christopher answer).

Answered By: Abimael

If you’re using a more recent version of the Python Development Server (releases > 1.7.6, or Mar 2013 and later), these seem to be the right steps to use:

  1. Include the following in your script,

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

  2. And per this docs page, set a flag by going to Edit > Application Settings > Launch Settings > Extra Command Line Flags, and adding,

    --log_level=debug

Answered By: user809695

I hope i am answering the question. The logging messages print to the AppEngine log rather than the terminal.

You can launch it
by clicking on the logs button of the AppEngine Launcher

Answered By: user5751790

Using the logging module is good practice, but it’s not required.

You can just do plain-old print()s to write to the Google App Engine Log Console.

Answered By: clickbait