try:
#do something that raises an exception...
except:
logging.error('Error Message')
我想要的不僅僅是「錯誤消息」顯示在日誌中。我想在日誌中看到回溯,或至少是什麼異常。我怎麼做?如何在appengine中記錄異常?
謝謝!
try:
#do something that raises an exception...
except:
logging.error('Error Message')
我想要的不僅僅是「錯誤消息」顯示在日誌中。我想在日誌中看到回溯,或至少是什麼異常。我怎麼做?如何在appengine中記錄異常?
謝謝!
logging.exception(msg[, *args])
日誌與根記錄器電平錯誤的消息。參數解釋爲debug()。異常信息被添加到日誌消息中。這個函數只能從異常處理程序中調用。
http://docs.python.org/library/logging.html#logging.exception
還有一個名爲[ereporter](http://code.google.com/appengine/articles/python/recording_exceptions_with_ereporter.html)的App引擎真棒工具,它會向您發送一封來自應用程序的例外電子郵件。 – Calvin 2011-05-10 03:34:34
您可以將日誌記錄詳細信息設置爲Debug,Info,Warning,Error或Critical,並在您的應用程序中進行設置。調試會給你很多細節。
import logging
logging.getLogger().setLevel(logging.DEBUG)
而且您可以在/ logs下的appengine Web控制檯中獲取特定過濾器的日誌。
我想這應該幫助你
import logging
try:
#exception code
except Exception as e:
logging.error(e)
這是我用來登錄整個堆棧跟蹤:
import traceback
try:
# your code
except:
stacktrace = traceback.format_exc()
logging.error("%s", stacktrace)
根據[PEP8(HTTP:// www.python.org/dev/peps/pep-0008/),除非你重新提出錯誤,否則你不應該有一個空的'except:'子句。否則可能會引發一個意外的異常,並且您的應用程序會繼續運行,但不知道它處於完全水封狀態。 – Calvin 2011-05-10 03:31:28
是的,那是對的。謝謝! – Albert 2011-05-10 06:13:47