Как сделать отступ в стеке Python? - PullRequest
1 голос
/ 09 февраля 2012

Среда - Python 2.7.2 на машине win7. Мой уровень мастерства - нуб

Я использую следующее для перехвата и печати трассировки стека исключений -

def logerr(stmt, e):
try:
    ##do something

except:
    print '##EXCEPTION in logging: '
    exc_type, exc_value, exc_traceback = sys.exc_info()
    traceback.print_exception(exc_type, exc_value, exc_traceback, file=sys.stdout)

вывод -

##EXCEPTION in logging: 
Traceback (most recent call last):
  File "C:\Users\amurty\Desktop\dev\eclipse\workspace\hhs\FeedSearch\src\main\main.py", line 18, in main
    log()
TypeError: log() takes exactly 1 argument (0 given)

Я хотел бы сделать отступ в трассировке стека. поэтому вывод должен выглядеть так -

##EXCEPTION in logging: 
        Traceback (most recent call last):
          File "C:\Users\amurty\Desktop\dev\eclipse\workspace\hhs\FeedSearch\src\main\main.py", line 18, in main
            log()
        TypeError: log() takes exactly 1 argument (0 given)

Как мне этого добиться. Поможет ли здесь модуль pprint или textwrap?

1 Ответ

3 голосов
/ 09 февраля 2012

попробуйте это:

import traceback

def logerr(stmt, e):
    try:
        ##do something

    except:
        print '##EXCEPTION in logging: '
        for line in traceback.format_exception().splitlines():
            print '        ' + line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...