سؤال

أنا أستخدم مكتبة بوتو للتحدث مع 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top