J'essaie d'apprendre comment fonctionne une application. Et pour cela, j'insère des commandes de débogage comme première ligne du corps de chaque fonction dans le but de consigner le nom de la fonction ainsi que le numéro de ligne (dans le code) où j'envoie un message à la sortie du journal. Enfin, puisque cette application comprend de nombreux fichiers, je souhaite créer un seul fichier journal afin de mieux comprendre le flux de contrôle de l'application.
Voici ce que je sais:
pour obtenir le nom de la fonction, je peux utiliser
function_name.__name__
mais je ne veux pas utiliser le nom_fonction (afin que je puisse rapidement copier et coller un génériqueLog.info("Message")
dans le corps de toutes les fonctions). Je sais que cela pourrait être fait en C en utilisant une__func__
macro, mais je ne suis pas sûr de python.pour obtenir le nom de fichier et le numéro de ligne, j'ai vu que (et je crois que) mon application utilise la
locals()
fonction Python mais dans une syntaxe dont je ne suis pas complètement conscient, par exemple:options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())
et je l'ai essayé en utilisant likeLOG.info("My message %s" % locals())
qui produit quelque chose comme{'self': <__main__.Class_name object at 0x22f8cd0>}
. Des commentaires à ce sujet s'il vous plaît?Je sais comment utiliser la journalisation et y ajouter un gestionnaire pour me connecter à un fichier, mais je ne suis pas sûr qu'un seul fichier puisse être utilisé pour enregistrer tous les messages de journal dans l'ordre correct des appels de fonction dans le projet.
J'apprécierais grandement toute aide.
Merci!
import pdb; pdb.set_trace()
, puis parcourir le code de manière interactive. Cela peut vous aider à suivre le déroulement du programme.