Почему библиотека Google Cloud Python добавляет избыточную регистрацию? - PullRequest
0 голосов
/ 18 ноября 2018

Во время from google.cloud import pubsub_v1 библиотека Google добавляет StreamHandler к корневому логгеру.

Это означает, что в моем собственном логгере каждая строка появляется дважды.

Установка handlers=[] для корневого регистратора решает эту проблему, но затем различные библиотеки, включая библиотеки Google, вообще не регистрируются, и я действительно хочу их журналы.

Вот минимальный пример кода:

import logging
import logging.config
import logging.handlers
import sys

def __configure() -> logging.Logger:
    root_logger = logging.getLogger()
    root_logger.setLevel(logging.WARNING)
    logger1 = logging.getLogger("the_logger")
    logger1.addHandler(__info_handler())
    logger1.setLevel(logging.DEBUG)
    return logger1


def __info_handler():
    info_handler = logging.StreamHandler(sys.stdout)
    info_handler.setLevel(logging.INFO)
    info_handler.setFormatter(logging.Formatter("%(asctime)s;%(levelname)s;%(message)s", "%Y-%m-%d %H:%M:%S"))
    return info_handler


the_logger= __configure()


the_logger.info("Hello World 1")
from google.cloud import pubsub_v1
the_logger.info("Hello World 2 ")

Вот что он печатает. Обратите внимание на дублирование.

2018-11-21 15:02:26;INFO;Hello World 1
INFO:the_logger:Hello World 2 
2018-11-21 15:02:27;INFO;Hello World 2 
...