Захват выходных данных журнала Google App Engine

#python #google-app-engine #logging

#python #google-app-engine #ведение журнала

Вопрос:

Как можно просматривать журналы Google App Engine вне консоли администратора?

Я разрабатываю, поэтому использую dev_appserver.py / консоль администратора и хотел бы видеть журналы по мере отправки записей.

Я хотел бы отслеживать выходные данные журнала в консоли с помощью стандартных инструментов Unix, например, less / grep / etc, Но, похоже, нет возможности направлять ведение журнала из dev_appserver.py команды, и я не могу открыть новый файл в GAE (например, FileHandler), поэтому обработчики файлов не будут работать, и я думаю, что использование обработчика сокета / udp было бы немного излишним (если это вообще возможно).

Я надеюсь, что есть другие варианты просмотра журнала.

Спасибо за чтение.

Комментарии:

1. Обсуждение на форуме GAE: code.google.com/appengine/forum /…

Ответ №1:

Регистратор по умолчанию отправляет выходные данные журнала на stderr . Используйте метод перенаправления вашей оболочки stderr в файл (в tcsh, (dev_appserver.py > /dev/tty) >amp; your_logfile.txt ваша оболочка может отличаться).

Вы также можете использовать logging модуль в python, чтобы изменить регистратор для отправки непосредственно в файл, если вы обнаружите, что он запущен локально ( os.environ['SERVER_SOFTWARE'].startswith('Dev') )

Комментарии:

1. Может ли logging модуль выполнять запись в файл из GAE? Не запрещены ли операции с файлами (за исключением w / testbed, сейчас)? Разве единственным вариантом не был бы регистратор для сокета или HTTP или что-то подобное?

2. @Brian: изолированная среда App Engine здесь неуместна; это решение предполагает, что оболочка перенаправляет выходные данные в файл на вашем локальном компьютере (где файловая система предположительно доступна для записи). Очевидно, что это не будет работать на производственных серверах, но там это также не нужно, потому что журналы сохраняются для вас.

Ответ №2:

Вы можете загружать журналы, используя request_logs параметр appcfg.py

http://code.google.com/appengine/docs/python/tools/uploadinganapp.html#Downloading_Logs

Редактировать: Этот человек придумал способ отправки журналов через XMPP. Его решение предназначено для GAE Java, но его можно было бы адаптировать к python.

http://www.professionalintellectualdevelopment.com/

http://code.google.com/p/gae-xmpp-logger/

Комментарии:

1. Извините, я должен был уточнить: я хочу получать журналы во время разработки (отсюда ссылка на `dev_appserver.py ). В противном случае, я думаю, вы получили правильный ответ. 🙂