在不修改boto文件的情况下禁用boto日志记录

2024-04-28 21:05:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Boto库与AWS对话。我想禁用日志记录。(或重定向到/dev/null或其他文件)。我找不到明显的方法来做这件事。我试过了,但似乎没用。

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

这说明这是可能的,http://developer.amazonwebservices.com/connect/thread.jspa?messageID=52727&#52727但是文档并没有说明如何实现。


Tags: 文件方法devimportaws记录对话logger
3条回答

更好的方法是,对boto禁用propagate

import boto
boto.set_file_logger('boto', 'logs/boto.log')
logging.getLogger('boto').propagate = False

你可以试试

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

它将抑制所有(除了关键)错误。

Boto使用日志配置文件(例如/etc/boto.cfg~/.boto),所以看看您是否可以这样配置它。

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

我把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)

要让所有的伐木工人遵循response from leobarcellos

import logging
loggers_dict = logging.Logger.manager.loggerDict

相关问题 更多 >