Pregunta

Estoy utilizando la biblioteca de Boto hablar con AWS. Quiero desactivar el registro. (O redirigir a / dev / null u otro archivo). No puedo encontrar una manera obvia de hacerlo. He intentado esto, pero eso no parece ayudar.

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

Esto dice que es posible, http://developer.amazonwebservices.com /connect/thread.jspa?messageID=52727췷 pero que yo sepa el imposible de la documentación dice cómo.

¿Fue útil?

Solución

Usted podría intentar

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

, que suprime todos (con excepción de los errores críticos).

Boto utiliza archivos de configuración de registro (por ejemplo /etc/boto.cfg, ~/.boto) para ver si usted puede configurarlo para sus necesidades de esa manera.

La llamada set_file_logger simplemente añade un archivo definido por el usuario para la configuración de registro, por lo que no se puede usar eso para desactivar el registro.

Otros consejos

Me muevo la respuesta boto3 de los comentarios (a saber charneykaye y gene_wood) a una respuesta correcta:

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)

Para obtener todos los madereros siguen la respuesta rel="noreferrer"> :

import logging
loggers_dict = logging.Logger.manager.loggerDict

Mejor aún, propagate desactivar para boto:

import boto
boto.set_file_logger('boto', 'logs/boto.log')
logging.getLogger('boto').propagate = False
scroll top