在不修改 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&#52727 但据我所知,文档没有说明如何。

原文由 agiliq 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 530
2 个回答

你可以试试

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

这将抑制所有(除了 CRITICAL)错误。

Boto 使用日志记录配置文件(例如 /etc/boto.cfg~/.boto )所以看看你是否可以按照你的需要配置它。

set_file_logger 调用只是将用户定义的文件添加到日志记录设置中,因此您不能使用它来关闭日志记录。

原文由 Vinay Sajip 发布,翻译遵循 CC BY-SA 2.5 许可协议

我将评论(即 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

原文由 lony 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题