google engine docs app google-app-engine logging

google app engine - docs - Descargue el registro desde AppEngine, incluidas las declaraciones del registro de Python



google app engine launcher (4)

Claro, simplemente pase el indicador de gravedad a 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.

Sé que puede descargar los registros de acceso sin formato con appcfg.py, pero estoy realmente interesado en toda la información sobre una solicitud específica, como las declaraciones de registro de Python, las excepciones y las estadísticas de la API (como el visor de registros en línea). ¿Alguien sabe si hay una manera de obtener esa información de otra manera que tener que construirla usted mismo?

En caso de que alguien se esté preguntando, queremos hacer un análisis estadístico continuo de los problemas y mostrarlos en una pantalla grande en una pared de la oficina.


Esta es una forma de acceder a los registros sin procesar para que pueda seguir procesando sin un análisis personalizado (también para mí, request_logs no está descargando todos los datos durante un período de tiempo específico).

Aquí hay una aplicación que se ejecuta en la propia aplicación: https://gaelogapp.appspot.com/

Puede agregar fácilmente esta funcionalidad a su aplicación con actualizaciones de app.yaml y copiar logs.py: https://github.com/okigan/gaelogapp


Esto es lo que nos funciona muy bien:

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

De todos modos, la línea de arriba obtendrá todos sus registros y los adjuntará a un archivo de registro si lo ha ejecutado anteriormente; de ​​lo contrario, creará un nuevo archivo de registro. En realidad, mira su registro existente (si está allí) y no obtendrá ningún duplicado. Puede ejecutar esto sin --append si lo desea, pero utilícelo si está automatizando las descargas de registros.

La clave aquí es la bandera --include_all que parece estar sin documentar. Esta bandera obtendrá todos los datos que vea si utiliza el visor de registro web de GAE. Entonces, obtendrás campos como: ms = 71 cpu_ms = 32 api_cpu_ms = 12 cpm_usd = 0.000921 ... etc.

OK, espero que ayude a alguien.

Por cierto, escribimos una entrada de blog sobre esto, échale un vistazo here .