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, étant donné que 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 function_name (pour que je puisse rapidement copier et coller unLog générique .info("Message")
dans le corps de toutes les fonctions). Je sais que cela pourrait être fait en C en utilisant la macro__func__
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 fonction Python
locals()
mais dans une syntaxe que je suis pas complètement au courant par exemple:options = "LOG.debug("%(flag)s : %(flag_get)s" % locals())
et je l'ai essayé en utilisant commeLOG.info ("My message %s" % locals())
qui produit quelque chose comme{"self": <__main__.Class_name object at 0x22f8cd0>}
. Toute entrée à ce sujet s'il vous plaît ?Je sais comment utiliser la journalisation et y ajouter un gestionnaire pour se 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 !