Boto desactivar el registro sin modificar los archivos boto
-
12-09-2019 - |
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.
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