如何从未捕获的崩溃中记录回溯?

时间:2015-02-08 16:11:25

标签: python logging traceback

我运行无头无人服务器,将所有内容记录到远程服务器。我在那里运行的应用程序也通过SysLogHandler执行此操作。它工作正常。

我遇到程序崩溃的情况(在try: except:未处理的地方),我也想以这种方式记录回溯。这有可能吗?

我特别谈论意外的追溯,我知道我可以log exceptions in an except: clause

1 个答案:

答案 0 :(得分:0)

您可以制作自定义excepthook

  

当引发异常并且未被捕获时,解释器会调用sys.excepthook     有三个参数,异常类,异常实例和回溯     对象


import sys
import logging
logger = ...

def excepthook(type_, value, traceback):
    logger.exception(value)
    # call the default excepthook
    sys.__excepthook__(type_, value, traceback)

sys.excepthook = excepthook