문제

Boto Library를 사용하여 AWS와 대화하고 있습니다. 로깅을 비활성화하고 싶습니다. (또는 /dev /null 또는 기타 파일로 리디렉션). 나는 이것을하는 명백한 방법을 찾을 수 없다. 나는 이것을 시도했지만 그것은 도움이되지 않는 것 같습니다.

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

이것은 가능하다고 말합니다. http://developer.amazonwebservices.com/connect/thread.jspa?messageid=52727 췷 췷 그러나 Afaik 문서는 방법을 알려주지 않습니다.

도움이 되었습니까?

해결책

당신은 시도 할 수 있습니다

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

중요한 오류를 제외한 모든 오류를 억제합니다.

Boto는 로깅 구성 파일을 사용합니다 (예 : /etc/boto.cfg, ~/.boto) 그러니 필요에 맞게 구성 할 수 있는지 확인하십시오.

그만큼 set_file_logger Call은 단순히 로깅 설정에 사용자 정의 파일을 추가하므로 로깅을 사용하여 로깅을 끄지 않습니다.

다른 팁

나는 주석 (즉 Charneykaye와 Gene_wood)에서 Boto3 답변을 올바른 답변으로 옮깁니다.

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)

모든 로거를 따르려면 다음을 따릅니다 Leobarcellos의 응답:

import logging
loggers_dict = logging.Logger.manager.loggerDict

더 나은 방법은 비활성화됩니다 propagate 보토를 위해 :

import boto
boto.set_file_logger('boto', 'logs/boto.log')
logging.getLogger('boto').propagate = False
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top