web-dev-qa-db-fra.com

Comment écrire sur la console dans Google App Engine?

Souvent, lorsque je code, j'aime juste imprimer de petites choses (principalement la valeur actuelle des variables) sur la console. Je ne vois rien de tel pour Google App Engine, bien que je remarque que le lanceur Google App Engine dispose d'un terminal de journalisation. Existe-t-il un moyen d'écrire sur ledit terminal ou sur un autre terminal à l'aide de Google App Engine? 

50
Stephen Cagle

Vous voudrez utiliser le module logging standard de Python.

import logging

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

Pour voir les appels à logging.debug() dans la console GoogleAppEngineLauncher Logs, vous devez d'abord ajouter l'indicateur --dev_appserver_log_level=debug à votre application. Cependant, sachez que vous allez voir beaucoup de bruit de débogage provenant du kit de développement logiciel App Engine. Le ensemble complet de niveaux sont:

  • debug
  • info
  • warning
  • error
  • critical

Vous pouvez ajouter l'indicateur en double-cliquant sur l'application, puis en la déposant dans le champ Extra Flags.

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

67
Chris Calo

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

Vous voulez probablement utiliser quelque chose comme:

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

@Manjoor

Vous pouvez faire la même chose en 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.");
    }
}

Voir "Journalisation" dans http://code.google.com/appengine/docs/Java/runtime.html

9
Dario Seidl

Si vous utilisez une version plus récente du serveur de développement Python (versions> 1.7.6 ou mars 2013 et versions ultérieures), il semble que ce soient les étapes à suivre:

  1. Inclure les éléments suivants dans votre script,

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

  2. Et par cette page de documentation , définissez un indicateur en sélectionnant Edition> Paramètres d'application> Paramètres de lancement> Indicateurs de ligne de commande supplémentaires, puis en ajoutant 

    --log_level=debug

4
user809695

Vous devriez également jeter un coup d'œil à FirePython. Il vous permet d’obtenir des messages de journalisation du serveur dans Firebug.

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

2
Sam

Bonjour, j'utilise la version 1.8.6 de GoogleAppEngineLauncher. Vous pouvez utiliser un indicateur pour définir le niveau de journalisation des messages à afficher, par exemple pour les messages de débogage:

--dev_appserver_log_level debug

Utilisez-le au lieu de --debug (voir @Christopher answer).

1
Abimael

Découvrez mon interpréteur Python en ligne fonctionnant sur Google App Engine sur mon site Web, Apprendre Python . C'est peut-être ce que vous cherchez. Utilisez simplement print repr (variable) sur les choses que vous voulez regarder et exécutez autant de fois que vous le souhaitez.

1
Ron Reiter

Utiliser le module logging est une bonne pratique, mais ce n'est pas obligatoire.

Vous pouvez simplement utiliser des print()s tout à fait anciennes pour écrire dans la console de journalisation de Google App Engine.

0
clickbait

J'espère que je réponds à la question. Les messages de journalisation sont imprimés dans le journal AppEngine plutôt que sur le terminal. 

Vous pouvez le lancer en cliquant sur le bouton des journaux du lanceur AppEngine

0
user5751790

GAE capturera l'erreur standard et l'imprimera sur la console ou dans un journal.

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

Utilisez log.setLevel (Level.ALL) pour voir les messages

Le niveau de filtrage des messages par défaut semble être "erreur". Je n'ai vu aucun message de journal utile avant d'utiliser la méthode setLevel () pour rendre visibles les messages .info et .warning. 

Le texte imprimé sur System.out n'apparaissait pas non plus. Cela semble être interprété comme un message de niveau log.info ().

0
Ribo