Python newbie. Maintenant, j'ai été bloqué autour de cela pendant un moment. Lorsque j'essaie d'écrire des journaux dans un fichier en utilisant la configuration ini
, rien n'est capturé dans le fichier. J'ai essayé de déboguer le problème mais je n'ai pas pu trouver d'indice. Écrire des journaux sans utiliser le fichier ini
fonctionne parfaitement.configuration de l'enregistreur pour se connecter au fichier
est Ci-dessous le code et le fichier ini
import logging
from logging.config import fileConfig
def info(message):
fileConfig('logging_config.ini')
logger=logging.getLogger("simple logger")
logger.warning('Something is not right')
logger.warning(message)
logging_config.ini
[loggers]
keys=root
[handlers]
keys=file_handler
[logger_root]
level=WARNING
handlers=file_handler
[formatters]
keys=formatter
[formatter_formatter]
format='%(message)s'
[handler_file_handler]
class=FileHandler
level=WARNING
formatter=formatter
args=('dummyoutput.log','w')
J'ai vérifié l'objet de l'enregistreur aussi pour voir si je peux obtenir une idée de ses propriétés. Ci-dessous est l'objet
{'disabled': 0,
'filters': [],
'handlers': [<logging.FileHandler object at 0x7ff03358ce90>],
'level': 30,
'name': 'root',
'parent': None,
'propagate': 1}
Je ne sais pas si son utile mais j'ai remarqué la propriété disabled
a été montré plus tôt TRUE
mais maintenant il est 0
chaque fois.
Quelqu'un a-t-il une idée de ce sujet?
Mise à jour: Le problème était dû à plusieurs appels à logging.config.fileConfig() pour le même fichier de configuration. Mais je ne pouvais pas vraiment comprendre pourquoi rien n'était écrit quand cette fonction était appelée pour la dernière fois. Une idée sur ça ??
Oh oui ... vous avez raison. Mais avec ça aussi ça ne marche pas. Aussi, j'ai essayé plus tôt la plupart du temps sans donner de nom de logger 'logger = logging.getLogger()' mais cela n'a pas fonctionné non plus. Aucune idée de ce qui ne va pas là-bas. – qwerty
Pouvez-vous expliquer exactement ce qui ne fonctionne pas (parce que je l'ai testé). Note: vous devez utiliser un chemin complet dans votre INI de configuration. Avez-vous trouvé votre fichier journal? –
Le fichier journal était déjà généré. Le code que vous avez partagé est parfaitement bien. En fait, le problème était que 'info (message)' était appelé plus d'une fois et 'fileConfig()' pour le même fichier de configuration que pour la fonction info * [veuillez vérifier ma réponse ci-dessous pour plus de détails] *. Mais je ne pouvais pas vraiment comprendre pourquoi rien n'était écrit quand cette fonction était appelée pour la dernière fois. Une idée sur ça ?? – qwerty