Пакет Python под названием SignalFx, как заставить _logger печатать на стандартный вывод - PullRequest
0 голосов
/ 10 июня 2019

Существует пакет Python для SignalFx : ссылка на источник GitHub

В одном из своих файлов он создает объект _logger, который использует библиотеку Python logging. Пакет содержит много операторов _logger.debug(), которые делают его полезным для устранения проблем с подключением.

Код создает экземпляр _logger как глобальную переменную, например:

_logger = logging.getLogger(__name__)

Исходная строка в GitHub

Я искал некоторое время и не могу понять, как просмотреть вывод _logger.debug(). Как мне заставить _logger напечатать до stdout? Или где я могу посмотреть записи в журнале?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Возможно, вам нужно настроить ведение журнала в приложении, которое использует SignalFx. Например, это может работать в сценарии вашей основной программы:

if __name__ == '__main__':
    import logging  # if not done already

    logging.basicConfig(level=logging.DEBUG, format='%(name)s %(message)s')

    # and then the rest of your script's code

Если это не дает результатов, вам, вероятно, нужно предоставить больше информации о том, как организован ваш код, использующий SignalFx.

0 голосов
/ 01 июля 2019

Хорошо, вернемся к этому вопросу, у меня наконец есть ответ, основанный на двух вопросах:

  1. Вопрос здесь: Как использовать logging.getLogger (__name__) в несколькихmodules
  2. Ответ здесь: https://stackoverflow.com/a/56840272/11163122

Первый вопрос был полезен, потому что я понял, почему пакет использовал getLogger(__name__).Это также заставило меня понять, что мне просто нужно получить доступ к базовому логгеру пакета с именем signalfx.

. Второй ответ был полезен, потому что я понял, что могу импортировать регистратор без необходимости импортировать _logger изSignalFx.

Мое окончательное решение (в моем коде) было таким:

sfx_logger = logging.getLogger("signalfx")
sfx_logger.setLevel(logging.DEBUG)
sfx_logger.addHandler(logging.StreamHandler(sys.stdout))

Теперь регистратор SignalFx печатает в stdout, и я вижу все операторы отладки!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...