Часто, когда я пишу код, мне просто нравится выводить мелочи (в основном текущее значение переменных) на консоль. Я не вижу ничего подобного для Google App Engine, хотя отмечу, что в программе запуска Google App Engine есть терминал журнала. Есть ли способ написать в указанный терминал или в какой-либо другой терминал с помощью Google App Engine?
Как мне писать в консоль в Google App Engine?
Ответы (11)
Вы захотите использовать стандартный модуль Python logging.
import logging
logging.info("hello")
logging.debug("hi") # this won't show up by default
Чтобы увидеть вызовы logging.debug() в консоли журналов GoogleAppEngineLauncher, вы должны сначала добавить флаг --dev_appserver_log_level=debug в свое приложение. Однако имейте в виду, что вы увидите много шума отладки из самого SDK App Engine. полный набор уровней находятся:
debuginfowarningerrorcritical
Вы можете добавить флаг, дважды щелкнув приложение, а затем перетащив его в поле Дополнительные флаги.
--log_level=debug вместо --debug.
- person Jesse Webb; 17.12.2014
См. 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))
@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
Если вы используете более новую версию Python Development Server (выпуски> 1.7.6 или март 2013 г. и более поздние версии), эти шаги кажутся правильными:
Включите в свой сценарий следующее:
import logging logging.debug("something I want to log")И на этой странице документов установите флаг, перейдя на Правка> Настройки приложения> Настройки запуска> Дополнительные флаги командной строки и добавление,
--log_level=debug
Вы также должны взглянуть на FirePython. Это позволяет вам получать сообщения журнала сервера в firebug.
http://appengine-cookbook.appspot.com/recipe/firepython-logger-console-inside-firebug/
Посмотрите мой онлайн-интерпретатор Python, работающий в Google App Engine, на моем веб-сайте, Learn Python. Возможно, это то, что вы ищете. Просто используйте print repr (переменную) для того, на что вы хотите посмотреть, и выполняйте столько раз, сколько хотите.
Здравствуйте, я использую версию 1.8.6 GoogleAppEngineLauncher, вы можете использовать флаг, чтобы установить уровень журнала сообщений, который вы хотите видеть, например, для сообщений отладки:
--dev_appserver_log_level debug
Используйте его вместо --debug (см. Ответ @Christopher).
GAE фиксирует стандартную ошибку и выводит ее на консоль или в журнал.
print >> sys.stderr, "Something to log."
Используйте log.setLevel (Level.ALL) для просмотра сообщений
Уровень фильтрации сообщений по умолчанию выглядит как «ошибка». Я не видел никаких полезных сообщений журнала, пока не использовал метод setLevel (), чтобы сделать видимыми сообщения .info и .warning.
Текст, напечатанный в System.out, тоже не отображался. Кажется, это интерпретируется как сообщения уровня log.info ().
Надеюсь, я отвечаю на вопрос. Сообщения журнала печатаются в журнале AppEngine, а не в терминале.
Вы можете запустить его , нажав кнопку журналов на панели запуска AppEngine
Использование модуля logging является хорошей практикой, но это не обязательно. .
Вы можете просто делать старые добрые print()s для записи в консоль журнала Google App Engine.
