【问题标题】:How to configure logging for an imported module?如何为导入的模块配置日志记录?
【发布时间】:2020-03-18 19:59:32
【问题描述】:

在我的Superset Web 应用程序中,我有兴趣将 Flask-OAuthLib 中的日志记录级别设置为DEBUG。我们可以看到 Flask-OAuthLib 访问它的记录器here on line 26 来自 Superset Web 应用程序。

Superset 是一个使用Flask-AppBuilder 实现的网络应用程序。它 允许通过 Flask-OAuthLib 进行 OAuth2 身份验证。

我想从custom_sso_security_manager.py 配置 Flask-OAuthLib 日志记录... the Superset docs on custom OAuth configuration.

【问题讨论】:

    标签: python python-3.x logging flask apache-superset


    【解决方案1】:

    您可以以完全相同的方式访问记录器。它们被添加到全局字典中,可以使用getLogger(key) 从中获取项目。因此,您只需在导入 oauth 库后将类似内容放入文件中即可:

    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
    

    【讨论】:

    • 如果该模块和记录器还没有被源模块实例化怎么办?
    • 取决于库,但如果写得不是特别糟糕,那也没问题。第一次调用getLogger 会创建记录器,只要库以后不设置记录器的级别或删除处理程序就不会出现问题。
    猜你喜欢
    • 1970-01-01
    • 2015-02-25
    • 2015-01-13
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    相关资源
    最近更新 更多