Pergunta

Estou usando a biblioteca BOTO para conversar com a AWS. Eu quero desativar o registro. (Ou redirecionar para /dev /null ou outro arquivo). Não consigo encontrar uma maneira óbvia de fazer isso. Eu tentei isso, mas isso não parece ajudar.

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

Isso diz que é possível, http://developer.amazonwebservices.com/connect/thread.jspa?messageId=52727 췷 Mas Afaik a documentação não diz como.

Foi útil?

Solução

Você poderia tentar

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

que suprimirão todos os erros (exceto críticos).

BOTO usa arquivos de configuração de registro (por exemplo /etc/boto.cfg, ~/.boto) Portanto, veja se você pode configurá -lo para suas necessidades dessa maneira.

o set_file_logger A chamada simplesmente adiciona um arquivo definido pelo usuário à configuração de log, para que você não possa usar isso para desligar o login.

Outras dicas

Eu movo a resposta BOTO3 dos comentários (a saber, Charneykaye e Gene_wood) para uma resposta adequada:

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 fazer com que todos os madeireiros sigam o Resposta de Leobarcellos:

import logging
loggers_dict = logging.Logger.manager.loggerDict

Melhor ainda, desative propagate para BOTO:

import boto
boto.set_file_logger('boto', 'logs/boto.log')
logging.getLogger('boto').propagate = False
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top