все Python 3tracebackфункция
traceback.format_stack()
трассировка в строку
Текущий стек вызовов строками, как в трассировке, но без исключения — чтобы записать в лог, откуда вызвана функция.
Синтаксис
lines = traceback.format_stack(f=None, limit=None)
Возвращает список строк; последняя — сама строка с вызовом format_stack. Полезна при отладке «кто вызывает меня с неверными аргументами»: в лог пишут ''.join(traceback.format_stack(limit=5)). В logging есть готовый аналог без ручной склейки — logger.warning('…', stack_info=True).
Примеры
import traceback
def deep():
return traceback.format_stack()
lines = deep()
print(len(lines)) # → 2
print(lines[-1].splitlines()[0].endswith('in deep')) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности