Question

J'utilise la bibliothèque Boto pour parler à AWS. Je veux désactiver la journalisation. (Ou rediriger vers / dev / null ou tout autre fichier). Je ne peux pas trouver un moyen évident de le faire. J'ai essayé, mais cela ne semble pas aider.

import boto
boto.set_file_logger('boto', 'logs/boto.log')

dit qu'il est possible, http://developer.amazonwebservices.com /connect/thread.jspa?messageID=52727췷 mais autant que je sache la documentation ne marche pas dire comment.

Était-ce utile?

La solution

Vous pouvez essayer

import logging
logging.getLogger('boto').setLevel(logging.CRITICAL)

qui supprimera toutes les erreurs (autres que CRITIQUES).

Boto utilise des fichiers de configuration de journalisation (par exemple /etc/boto.cfg, ~/.boto) afin de voir si vous pouvez le configurer selon vos besoins de cette façon.

L'appel set_file_logger ajoute simplement un fichier défini par l'utilisateur à la configuration de l'enregistrement, de sorte que vous ne pouvez pas l'utiliser pour désactiver la journalisation.

Autres conseils

Je propose la réponse boto3 des commentaires (à savoir charneykaye et gene_wood) à une réponse appropriée:

import logging

logger = logging.getLogger()
logger.addHandler(logging.StreamHandler()) # Writes to console
logger.setLevel(logging.DEBUG)
logging.getLogger('boto3').setLevel(logging.CRITICAL)
logging.getLogger('botocore').setLevel(logging.CRITICAL)
logging.getLogger('s3transfer').setLevel(logging.CRITICAL)
logging.getLogger('urllib3').setLevel(logging.CRITICAL)

import boto3

s3 = boto3.resource('s3')

for bucket in s3.buckets.all():
    print(bucket.name)

Pour obtenir tous les enregistreurs suivent la de leobarcellos :

import logging
loggers_dict = logging.Logger.manager.loggerDict

Mieux encore, propagate pour désactiver Boto:

import boto
boto.set_file_logger('boto', 'logs/boto.log')
logging.getLogger('boto').propagate = False
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top