【问题标题】:how to log tracebacks from uncaught crashes? [duplicate]如何记录未捕获崩溃的回溯? [复制]
【发布时间】:2015-04-08 09:22:26
【问题描述】:

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

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

我特指意外回溯,我知道我可以log exceptions in an except: clause

【问题讨论】:

    标签: python logging traceback


    【解决方案1】:

    您可以自定义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
    

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-31
      相关资源
      最近更新 更多