2015-02-08 5 views
1

Я запускаю безголовый и беспилотный сервер, который регистрирует все на удаленном сервере. Приложение, которое я запускаю там, также делает это через SysLogHandler. Он работает нормально.Как записывать трассировки из неперехваченных сбоев?

У меня есть случаи, когда программа вылетает (в местах, где не обрабатывается try: except:), и я хотел бы также зарегистрировать этот трассировку. Это вообще возможно?

Я специально говорю о неожиданных отслеживаниях, я знаю, что могу log exceptions in an except: clause.

ответ

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 

 Смежные вопросы

  • Нет связанных вопросов^_^