0

我开始在 python 中使用日志记录,我想将我的日志写入文件。

日志记录模块正在将很多事件写入文件。我只想编写自己的记录器,不想记录默认记录器。我怎样才能避免这种情况?

以下是现在发生的示例日志记录:

将事件名称从 created-client-class.iot-data 更改为 created-client-class.iot-data-plane
将事件名称从 before-call.apigateway 更改为 before-call.api-gateway
将事件名称从 request-created 更改。机器学习。预测到 request-created.machine-learning。预测将区域的配置变量设置为“us-west-2”

我如何实例化记录器的方式

logger = logging.getLogger("S3_transfer")

def set_log_output_file(logname):
    if not os.path.exists('logs'):
        os.makedirs('logs')
    logging.basicConfig(filename='logs/{}.log'.format(logname),
                        filemode='a',
                        format='%(asctime)s %(levelname)-8s %(message)s',
                        datefmt='%a, %d %b %Y %H:%M:%S',
                        level=logging.DEBUG)

def get_logger():
    """
    Retrieves the current logger
    :return: Logger
    """
    return logger

请给点建议?!?!

4

1 回答 1

0

发生这种情况是因为多个同名调用 logging.getLogger() 将始终返回相同的 Logger 实例。在 python 包中有一种做法是通过 来创建一个记录器实例logging.getLogger(__name__),这允许我们在一个地方获取所有日志并配置一次记录器。但是,如果您不想看到来自外部包的任何日志,只需__name__在您的文件中替换为您自己的记录器名称并设置基本配置,该配置将为它写入文件。

于 2019-10-01T06:34:16.057 回答