Отключить ведение журнала boto без изменения файлов boto
Я использую библиотеку Boto для общения с AWS. Я хочу отключить ведение журнала. (Или перенаправлять в /dev/null или другой файл). Я не могу найти очевидный способ сделать это. Я пробовал, но это не помогает.
import boto
boto.set_file_logger('boto', 'logs/boto.log')
Это говорит, что это возможно,http://developer.amazonwebservices.com/connect/thread.jspa?messageID=52727췷 но AFAIK документация не говорит, как.
3 ответов
вы могли бы попробовать
import logging
logging.getLogger('boto').setLevel(logging.CRITICAL)
, который будет подавлять все (кроме критических) ошибок.
Boto использует файлы конфигурации ведения журнала (например,/etc/boto.cfg
, ~/.boto
) Так что смотрите, если вы можете настроить его для ваших нужд таким образом.
на set_file_logger
call просто добавляет пользовательский файл в настройку ведения журнала, поэтому вы не можете использовать его для отключения входа.
еще лучше, отключить propagate
для boto:
import boto
boto.set_file_logger('boto', 'logs/boto.log')
logging.getLogger('boto').propagate = False
я перемещаю ответ boto3 из комментариев (а именно charneykaye и gene_wood) в правильный ответ:
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