Home  >  Article  >  Backend Development  >  How to record call stack log implementation method in Python?

How to record call stack log implementation method in Python?

伊谢尔伦
伊谢尔伦Original
2017-06-28 13:48:491592browse

This article mainly introduces the method of Python to record detailed call stack logs, involving related skills of Python call stack logs. It has certain reference value. Friends who need it can refer to it

The example in this article describes how Python records detailed call stack logs. Share it with everyone for your reference. The specific implementation method is as follows:

import sys
import os
def detailtrace(info):
  retStr = ""
  curindex=0
  f = sys._getframe()
  f = f.f_back    # first frame is detailtrace, ignore it
  while hasattr(f, "f_code"):
    co = f.f_code
    retStr = "%s(%s:%s)->"%(os.path.basename(co.co_filename),
         co.co_name,
         f.f_lineno) + retStr
    f = f.f_back
  print retStr+info
def foo():
  detailtrace("hello world")
def bar():
  foo()
def main():
  bar()
if name == "main":
  main()

Output:

aaa1.py(dea25ee49c3f91dfee5a2ed5d0bddd9a:27)->aaa1.py(main:24)- >aaa1.py(bar:21)->aaa1.py(foo:18)->hello world

The above is the detailed content of How to record call stack log implementation method in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn