首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >名为SignalFx的Python包,如何使_logger打印到stdout

名为SignalFx的Python包,如何使_logger打印到stdout
EN

Stack Overflow用户
提问于 2019-06-10 18:49:06
回答 2查看 100关注 0票数 0

有一个用于SignalFx链接到GitHub源的Python包

在其中一个文件中,它生成一个_logger对象,该对象使用Python的logging库。这个包有许多_logger.debug()语句,这使得它在调试连接问题时很有用。

代码将_logger实例化为全局变量,如下所示:

_logger = logging.getLogger(__name__)

GitHub中的源行

我搜索了一段时间,不知道如何查看_logger.debug()的输出。如何让_logger打印到stdout?或者,在哪里可以查看日志语句?

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-01 19:05:34

好的,回到这个问题上,我终于得到了一个基于两个问题的答案:

  1. 这里的问题是:)在多个模块中
  2. 这里的答案是:https://stackoverflow.com/a/56840272/11163122

第一个问题很有用,因为我意识到为什么包使用getLogger(__name__)。这也让我意识到,我只需要访问包的基本记录器,名为signalfx

第二个答案很有用,因为我意识到我基本上可以导入记录器,而不需要从SignalFx导入SignalFx。

我的最后一个解决方案(在我的代码中)是:

代码语言:javascript
复制
sfx_logger = logging.getLogger("signalfx")
sfx_logger.setLevel(logging.DEBUG)
sfx_logger.addHandler(logging.StreamHandler(sys.stdout))

现在,SignalFx记录器打印到stdout,我可以看到所有的调试语句!

票数 0
EN

Stack Overflow用户

发布于 2019-06-11 12:44:58

您可能需要在使用SignalFx的应用程序中配置日志记录。例如,这可能适用于您的主程序脚本:

代码语言:javascript
复制
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的代码是如何组织的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56531961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档