Почему этот аргумент traceback
должен иметь метод format_exception
, такой же, как функция в модуле трассировки, имя которой он узурпирует, и если он имеет такой метод, то почему этот метод требует, чтобы тот же объект, для которого он был вызван, был передан в в качестве последнего аргумента, а?
Я подозреваю, что вы просто хотите дать третьему аргументу другое имя, чтобы не скрывать модуль трассировки, скажем:
import sys
import traceback
def logexception(type, value, tb):
print traceback.format_exception(type, value, tb)
sys.excepthook = logexception
и все должно работать намного лучше.