Maison >développement back-end >Tutoriel Python >Comment enregistrer la méthode d'implémentation du journal de la pile d'appels en Python ?

Comment enregistrer la méthode d'implémentation du journal de la pile d'appels en Python ?

伊谢尔伦
伊谢尔伦original
2017-06-28 13:48:491617parcourir

Cet article présente principalement la méthode Python d'enregistrement des journaux de pile d'appels détaillés, impliquant des compétences connexes des journaux de pile d'appels Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

<.>L'exemple de cet article décrit comment Python enregistre les journaux détaillés de la pile d'appels. Partagez-le avec tout le monde pour votre référence. La méthode de mise en œuvre spécifique est la suivante :

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()
Sortie :

aaa1.py(1c6b749cda01bf4a97fda7e51b9b017b:27)->aaa1.py( main:24 )->aaa1.py(bar:21)->aaa1.py(foo:18)->bonjour tout le monde

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn