8
try: 
    #do something that raises an exception... 
except: 
    logging.error('Error Message') 

Quiero mostrar más que solo "Mensaje de error" en los registros. Quiero ver el rastreo, o al menos cuál fue la excepción, en los registros también. ¿Cómo puedo hacer eso?¿Cómo registrar excepciones en appengine?

Gracias!

+0

De acuerdo con [PEP8] (http: // www.python.org/dev/peps/pep-0008/) no deberías tener una cláusula 'except:' vacía a menos que vuelvas a "subir" el error. De lo contrario, podría surgir una excepción por sorpresa y su aplicación continuará, sin darse cuenta de que está en un estado completamente de mangueras. – Calvin

+0

Sí, eso es correcto. ¡Gracias! – Albert

Respuesta

7

logging.exception(msg[, *args])

registra un mensaje de error de nivel en el registrador de la raíz. Los argumentos se interpretan como para debug(). La información de excepción se agrega al mensaje de registro. Esta función solo debe invocarse desde un manejador de excepciones.

http://docs.python.org/library/logging.html#logging.exception

+3

También existe esta increíble herramienta para App Engine llamada [ereporter] (http://code.google.com/appengine/articles/python/recording_exceptions_with_ereporter.html) que le envía un correo electrónico diario con las excepciones de su aplicación. – Calvin

0

Puede establecer los detalles de registro en Depurar, Información, Advertencia, Error o Crítico y configurar su aplicación. Debug te daría muchos detalles.

import logging 
logging.getLogger().setLevel(logging.DEBUG) 

Y puede obtener los registros del filtro particular en su consola web de appengine en/logs.

3

creo que esto debería ayudarle a

import logging 

try: 
    #exception code 
except Exception as e: 
    logging.error(e) 
8

Esto es lo que yo uso para registrar toda la traza de la pila:

import traceback 
try: 
    # your code 
except: 
    stacktrace = traceback.format_exc() 
    logging.error("%s", stacktrace) 
Cuestiones relacionadas