J'essaie d'apprendre comment fonctionne une application. Pour ce faire, j'insère des commandes de débogage à la première ligne du corps de chaque fonction dans le but d'enregistrer 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 nom de la fonction (afin de pouvoir rapidement copier et coller un nom de fonction générique).Log.info("Message")
dans le corps de toutes les fonctions). Je sais que cela pourrait être fait en C en utilisant__func__
macro mais je ne suis pas sûr pour python. -
pour obtenir le nom du fichier et le numéro de ligne, j'ai vu que (et je crois que) mon application utilise Python
locals()
mais dans une syntaxe que je ne connais pas complètement, par exemple :options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())
et j'ai essayé de l'utiliser commeLOG.info("My message %s" % locals())
ce qui donne quelque chose comme{'self': <__main__.Class_name object at 0x22f8cd0>}
. Quel est votre avis à ce sujet ? -
Je sais comment utiliser la journalisation et y ajouter un gestionnaire pour enregistrer dans un fichier, mais je ne suis pas sûr qu'un seul fichier puisse être utilisé pour enregistrer tous les messages de journalisation dans l'ordre correct des appels de fonction dans le projet.