تعطيل تسجيل بوتو دون تعديل ملفات Boto
-
12-09-2019 - |
سؤال
أنا أستخدم مكتبة بوتو للتحدث مع AWS. أريد تعطيل التسجيل. (أو إعادة توجيه إلى / dev / null أو ملف آخر). لا أستطيع العثور على طريقة واضحة للقيام بذلك. حاولت هذا، لكن هذا لا يبدو للمساعدة.
import boto
boto.set_file_logger('boto', 'logs/boto.log')
هذا يقول أنه من الممكن، http://developer.amazonwebservices.com/connect/thread.jspa؟messageid=52727 췷. لكن افيك الوثائق لا تحكي كيف.
المحلول
بامكانك ان تحاول
import logging
logging.getLogger('boto').setLevel(logging.CRITICAL)
والتي سوف تقمع الأخطاء جميع (غير الحرجة).
يستخدم Boto ملفات تكوين التسجيل (على سبيل المثال /etc/boto.cfg
, ~/.boto
) لذا معرفة ما إذا كان يمكنك تكوينه لاحتياجاتك بهذه الطريقة.
ال set_file_logger
اتصل ببساطة بإضافة ملف يعرف المستخدم إلى إعداد التسجيل، لذلك لا يمكنك استخدام ذلك لتشغيل تسجيل الخروج.
نصائح أخرى
أقوم بنقل الإجابة Boto3 من التعليقات (وهي charneykaye and 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
أفضل بعد، تعطيل propagate
لبوتو:
import boto
boto.set_file_logger('boto', 'logs/boto.log')
logging.getLogger('boto').propagate = False