Как настроить ведение журнала для импортированного модуля?

В моем веб-приложении Superset меня интересует установка уровня ведения журнала в Flask-OAuthLib на DEBUG. Мы можем видеть, как Flask-OAuthLib получает доступ к своему регистратору здесь в строке 26 из веб-приложения Superset.

Superset - это веб-приложение, реализованное с помощью Flask-AppBuilder. Он позволяет выполнять аутентификацию OAuth2 через Flask-OAuthLib.

Я хочу настроить ведение журнала Flask-OAuthLib из custom_sso_security_manager.py ... модуля, описанного в Документация по расширению пользовательской конфигурации OAuth.


person Terrence Brannon    schedule 22.11.2019    source источник


Ответы (1)


Точно так же вы можете получить доступ к регистратору. Они добавляются в глобальный словарь, из которого можно получить элементы с помощью getLogger(key). Итак, все, что вам нужно, это поместить что-то вроде этого в свой файл после того, как вы импортировали oauth lib:

oauth_logger = logging.getLogger('flask_oauthlib')
oauth_logger.setLevel(logging.DEBUG)

# it is custom for libs to have no handler (except the NullHandler)
# so you may want to add one:
oauth_logger.addHandler(logging.StreamHandler()) # just an example
person blues    schedule 23.11.2019
comment
Что, если этот модуль и средство ведения журнала еще не созданы исходным модулем? - person Terrence Brannon; 24.11.2019
comment
Зависит от библиотеки, но если она не особо плохо написана, проблем не будет. Первый вызов getLogger создает регистратор, и пока библиотека не установит уровень регистратора позже или не удалит обработчики, проблем не будет. - person blues; 25.11.2019