2015-06-03 73 views
1

有時在生產過程中,可能會遇到一些錯誤,例如Flask引發異常。其中一個解決方案是使用logging.exception來記錄異常。但重現問題還不夠。燒瓶 - 轉儲異常以便稍後調試

如果我們可以將異常轉儲到文件中以稍後調試以探索對象,那將會很不錯。做python能夠做到這一點?核心轉儲之類的東西?

回答

0

如果發生異常,可以將完整的堆棧跟蹤保存到文件中。 您可以爲您的應用程序實例創建一個函數來記錄異常。在這個例子中,你的應用程序或sqllachemy包中的所有異常都將記錄在「sample.log」文件中。

def log(app): 

    import logging 
    from logging.handlers import RotatingFileHandler 
    from logging import getLogger 
    logging._defaultFormatter = logging.Formatter(u"%(message)s") 
    file_handler.setLevel(logging.ERROR) 
    file_handler = RotatingFileHandler("sample.log", maxBytes=1024*1024*10,  backupCount=100) 

    loggers = [app.logger, getLogger('sqlalchemy')] 
    for logger in loggers: 
     logger.addHandler(file_handler) 

在應用程序的初始化腳本創建應用程序實例只是 調用創建功能

log(app)