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)