Afficher les traces de pile en utilisant [Python] inspect

J'ai utilisé inspect pour créer une fonction qui affiche une trace de pile.

hello_world.py


# -*- coding: utf-8 -*-

import inspect

def printmessage(message):
    record = inspect.stack()[1]
    frame = record[0]
    info = inspect.getframeinfo(frame)
    fn = str(info.filename).split('/')[-1]
    print '[TAG]' + fn + '#' + info.function + '(L:'+str(info.lineno) + ') : ' + message

def printstack():
    for num in range(len(inspect.stack())):
        if num == 0:
            continue
        record = inspect.stack()[num]
        frame = record[0]
        info = inspect.getframeinfo(frame)
        fn = str(info.filename).split('/')[-1]
        print '[TAG][' + str(num) + ']' + fn + '#' + info.function + '(L:'+str(info.lineno) + ')'

if __name__ == '__main__':
    printmessage('hogehoge')
    print ('-----------')
    printstack()

résultat


[TAG]hello_world.py#<module>(L:23) : hogehoge
-----------
[TAG][1]hello_world.py#<module>(L:25)
[TAG][2]visualstudio_py_util.py#exec_code(L:95)
[TAG][3]visualstudio_py_util.py#exec_file(L:119)
[TAG][4]visualstudio_py_debugger.py#debug(L:2624)
[TAG][5]visualstudio_py_launcher.py#<module>(L:91)

[référence] https://docs.python.jp/3/library/inspect.html

Recommended Posts

Afficher les traces de pile en utilisant [Python] inspect
Afficher la trace de la pile avec une exception python
Recherche de priorité de profondeur à l'aide de la pile en Python
File d'attente Python #stack
Commencez à utiliser Python
Scraping à l'aide de Python
Afficher les avis sur les médicaments à l'aide de listes en Python
Manipuler Redmine à l'aide de Python Redmine
Séquence de Fibonacci utilisant Python
Nettoyage des données à l'aide de Python
Utilisation des packages Python #external
Câblage Communication Pi-SPI avec Python
Calcul de l'âge à l'aide de python
Rechercher sur Twitter avec Python
Identification de nom à l'aide de python
Notes sur l'utilisation de sous-processus Python
Essayez d'utiliser Tweepy [Python2.7]
[Blender Python] Afficher les images sur la vue 3D en utilisant OpenGL (bgl)
Afficher à l'aide du module python du backend mobile Nifty Cloud
mémo python utilisant l'opérateur perl-ternaire
Aplatir à l'aide du rendement Python de
Enregistrer des images à l'aide de requêtes python3
[S3] CRUD avec S3 utilisant Python [Python]
[Python] Essayez d'utiliser le canevas de Tkinter
Utilisation de Quaternion avec Python ~ numpy-quaternion ~
Essayez d'utiliser Kubernetes Client -Python-
notes python pour l'utilisation de variables spéciales perl
Scraping à l'aide de la syntaxe Python 3.5 Async
Surveillance des changements de site Web à l'aide de python
Publier sur Twitter en utilisant Python
Algorithme de recherche utilisant word2vec [python]
Changer la version de python à l'aide de pyenv
python: principes de base de l'utilisation de scikit-learn ①
# 1 [python3] Calcul simple à l'aide de variables
Créer des tickets JIRA en utilisant Python
Contrôle d'instruments à l'aide de Python [pyvisa]
Manipulez les feuilles de calcul localement à l'aide de Python
mémo python utilisant perl --join
Afficher la communication Python avec Fiddler
Web scraping avec Selenium (Python)
Pile et file d'attente en Python
[Python] Validation de JSON avec Voluptuous
Diffusion sur LINE en utilisant python
Analyse de données à l'aide de pandas python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Utiliser OpenCV avec Python @Mac
[Python] Jeu de tir avec pyxel
Envoyer en utilisant Python avec Gmail