Je commence à entrer dans le module de journalisation Python, mais à moins que je ne souhaite que tous les messages disent "root", je dois créer un enregistreur pour chaque module, et c'est un peu difficile à faire ça encore et encore.Ajout de méthodes globales magiques aux modules
Je pensais que ce serait pratique s'il y avait une méthode magique __logger__()
qui retournerait un enregistreur pour le module actuel, en le créant si nécessaire. Une variable __logger__
magique qui pourrait être appelée sans parenthèse serait encore mieux. Comment pourrais-je m'y prendre?
Par exemple, dans un module nommé foo, je pourrais appeler __logger__.debug('this is a debug message for the foo module')
, et il me présentais dans ma console comme:
DEBUG: foo: ceci est un message de débogage pour le module foo
Vous n'êtes pas en train de créer un enregistreur avec la réponse de Lie Ryan, vous obtenez juste une référence à l'enregistreur standard avec un nom local. En d'autres termes, le module de journalisation fait déjà la plupart de ce que vous demandez. – msw
Clarification: Je suis déjà au courant de la manière manuelle de récupérer un enregistreur pour le module courant. Ce que je veux savoir, c'est comment/si je peux ajouter des méthodes magiques à tous les modules Python afin que je n'aie pas à retaper le même code dans tous les modules que je veux utiliser. –
Je ne pense pas qu'il y ait moyen de Pour ce faire, pour l'utilisation la plus simple, vous devez faire 'import logging' et ensuite utiliser' logging.log() '(ou l'une de ses méthodes pratiques). Ce n'est pas tellement de travail, et vous pouvez simplement utiliser 'print' pour des utilisations encore plus simples. –