我运行无头无人服务器,将所有内容记录到远程服务器。我在那里运行的应用程序也通过SysLogHandler
执行此操作。它工作正常。
我遇到程序崩溃的情况(在try: except:
未处理的地方),我也想以这种方式记录回溯。这有可能吗?
我特别谈论意外的追溯,我知道我可以log exceptions in an except:
clause。
答案 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