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

我想要的不仅仅是“错误消息”显示在日志中。我想在日志中看到回溯,或至少是什么异常。我怎么做?如何在appengine中记录异常?

谢谢!

+0

根据[PEP8(HTTP:// www.python.org/dev/peps/pep-0008/),除非你重新提出错误,否则你不应该有一个空的'except:'子句。否则可能会引发一个意外的异常,并且您的应用程序会继续运行,但不知道它处于完全水封状态。 – Calvin 2011-05-10 03:31:28

+0

是的,那是对的。谢谢! – Albert 2011-05-10 06:13:47

回答

7

logging.exception(msg[, *args])

日志与根记录器电平错误的消息。参数解释为debug()。异常信息被添加到日志消息中。这个函数只能从异常处理程序中调用。

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

+3

还有一个名为[ereporter](http://code.google.com/appengine/articles/python/recording_exceptions_with_ereporter.html)的App引擎真棒工具,它会向您发送一封来自应用程序的例外电子邮件。 – Calvin 2011-05-10 03:34:34

0

您可以将日志记录详细信息设置为Debug,Info,Warning,Error或Critical,并在您的应用程序中进行设置。调试会给你很多细节。

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

而且您可以在/ logs下的appengine Web控制台中获取特定过滤器的日志。

3

我想这应该帮助你

import logging 

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

这是我用来登录整个堆栈跟踪:

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