Подтвердить что ты не робот

Загрузить журнал из AppEngine Включая записи журнала Python

Я знаю, что вы можете загружать необработанные журналы доступа с помощью appcfg.py, но меня действительно интересует вся информация вокруг конкретного запроса, такого как инструкции ведения журнала python, исключения и статистика api (как и просмотр онлайн-журнала). Кто-нибудь знает, есть ли способ получить эту информацию другим способом, а затем самостоятельно ее создать?

Если кто-то задается вопросом, мы хотим провести статистический анализ по проблемам и показать их на большом экране на стене в офисе.

4b9b3361

Ответ 1

Конечно - просто передайте флаг --severity в appcfg.py:

$ appcfg.py help request_logs
Usage: appcfg.py [options] request_logs <directory> <output_file>

Write request logs in Apache common log format.

The 'request_logs' command exports the request logs from your application
to a file.  It will write Apache common log format records ordered
chronologically.  If output file is '-' stdout will be written.

Options:
  -h, --help            Show the help message and exit.
  -q, --quiet           Print errors only.
  -v, --verbose         Print info level logs.
  --noisy               Print all logs.
  -s SERVER, --server=SERVER
                        The server to connect to.
  --insecure            Use HTTP when communicating with the server.
  -e EMAIL, --email=EMAIL
                        The username to use. Will prompt if omitted.
  -H HOST, --host=HOST  Overrides the Host header sent with all RPCs.
  --no_cookies          Do not save authentication cookies to local disk.
  --passin              Read the login password from stdin.
  -A APP_ID, --application=APP_ID
                        Override application from app.yaml file.
  -V VERSION, --version=VERSION
                        Override (major) version from app.yaml file.
  -n NUM_DAYS, --num_days=NUM_DAYS
                        Number of days worth of log data to get. The cut-off
                        point is midnight UTC. Use 0 to get all available
                        logs. Default is 1, unless --append is also given;
                        then the default is 0.
  -a, --append          Append to existing file.
  --severity=SEVERITY   Severity of app-level log messages to get. The range
                        is 0 (DEBUG) through 4 (CRITICAL). If omitted, only
                        request logs are returned.
  --vhost=VHOST         The virtual host of log messages to get. If omitted,
                        all log messages are returned.
  --include_vhost       Include virtual host in log messages.
  --end_date=END_DATE   End date (as YYYY-MM-DD) of period for log data.
                        Defaults to today.

Ответ 2

Это то, что работает для нас очень хорошо:

appcfg.py --append --num_days=0 --include_all request_logs /path/to/your/app/ /var/log/gae/yourapp.log

В любом случае, строка выше получит все ваши записи журнала и добавит их в файл журнала, если вы выполнили это раньше, а если нет, он создаст новый файл журнала. Он фактически просматривает ваш существующий журнал (если он есть), и он не получит никаких дубликатов. Вы можете запустить это без --append, если хотите, но использовать его, если вы автоматизируете загрузку журналов.

Ключевым здесь является флаг --include_all, который, как представляется, недокументирован. Этот флаг получит все данные, которые вы видите, если вы используете средство просмотра веб-журнала GAE. Итак, вы получите поля, такие как: ms = 71 cpu_ms = 32 api_cpu_ms = 12 cpm_usd = 0.000921... и т.д.

Хорошо, надеюсь, что это поможет кому-то.

Кстати, мы написали сообщение в блоге об этом, посмотрите здесь: http://bit.ly/GAE-LOGS

Ответ 3

Кажется, что я использую appcfg в предел 100M. Я закончил использование API logservice для получения журналов

Здесь код - https://github.com/manasg/gae-log-fetcher

Ответ 4

Вот способ доступа к необработанным журналам, чтобы вы могли продолжить обработку без специального разбора (также для меня request_logs не загружает все данные за указанный период времени).

Вот приложение, которое запускается в самой appengine: https://gaelogapp.appspot.com/

Вы можете легко добавить эту функциональность в свое приложение с обновлениями к app.yaml и скопировать logs.py: https://github.com/okigan/gaelogapp