Disabilitare boto registrazione senza modificare i file Boto
-
12-09-2019 - |
Domanda
Sto usando la libreria Boto di parlare con AWS. Voglio disattivare la registrazione. (O reindirizzare a / dev / null o un altro file). Non posso trovare un modo ovvio per fare questo. Ho provato a farlo, ma questo non sembra aiutare.
import boto
boto.set_file_logger('boto', 'logs/boto.log')
Questo dice che è possibile, http://developer.amazonwebservices.com /connect/thread.jspa?messageID=52727췷 ma per quanto ne so il doesnt documentazione di dire come.
Soluzione
Si potrebbe provare
import logging
logging.getLogger('boto').setLevel(logging.CRITICAL)
, che sarà soppresso ogni (altro che Critico) errori.
Boto utilizza file di configurazione di registrazione (ad esempio /etc/boto.cfg
, ~/.boto
) in modo da vedere se è possibile configurarlo per le vostre esigenze in questo modo.
La chiamata set_file_logger
aggiunge semplicemente un file definito dall'utente per la configurazione di registrazione, quindi non è possibile utilizzare che per girare la disconnessione.
Altri suggerimenti
Mi muovo la risposta boto3 dai commenti (vale a dire charneykaye e gene_wood) ad una risposta adeguata:
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)
Per ottenere tutti i registratori seguono la risposta rel="noreferrer"> :
import logging
loggers_dict = logging.Logger.manager.loggerDict
Meglio ancora, propagate
disable per boto:
import boto
boto.set_file_logger('boto', 'logs/boto.log')
logging.getLogger('boto').propagate = False