Преобразовать информацию об исключениях Python в строку для ведения журнала - PullRequest
5 голосов
/ 09 августа 2009

Я пытаюсь регистрировать исключения в Python 2.5, но не могу этого сделать. Все функции форматирования делают что-то еще, чем я хочу.

Я придумал это:

def logexception(type, value, traceback):
  print traceback.format_exception(type, value, traceback)

sys.excepthook = logexception

но он выдается с ошибкой аргумента при вызове, хотя в соответствии с документацией он должен работать. Кто-нибудь знает, в чем проблема с этим или у вас есть другое решение?

Ответы [ 2 ]

5 голосов
/ 09 августа 2009

Почему этот аргумент traceback должен иметь метод format_exception, такой же, как функция в модуле трассировки, имя которой он узурпирует, и если он имеет такой метод, то почему этот метод требует, чтобы тот же объект, для которого он был вызван, был передан в в качестве последнего аргумента, а?

Я подозреваю, что вы просто хотите дать третьему аргументу другое имя, чтобы не скрывать модуль трассировки, скажем:

import sys
import traceback

def logexception(type, value, tb):
  print traceback.format_exception(type, value, tb)

sys.excepthook = logexception

и все должно работать намного лучше.

0 голосов
/ 09 августа 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...