【发布时间】:2016-02-10 22:01:10
【问题描述】:
我有一个依赖于几个不同模块的包,每个模块都设置了自己的记录器。这允许我记录每条日志消息的来源,这很有用。
但是,当在 IPython/Jupyter 笔记本中使用此代码时,我无法控制打印到屏幕上的内容。具体来说,我收到了很多我不想看到的调试级消息。
如何更改打印到笔记本的日志级别?
更多信息:
我尝试在笔记本中设置一个根记录器,如下所示:
# In notebook
import logging
logging.basicConfig()
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# Import the module
import mymodule
然后在我的模块顶部,我有
# In mymodule.py
import logging
logger = logging.getLogger('mypackage.' + __name__)
logger.setLevel(logging.DEBUG)
logger.propagate = True
# Log some messages
logger.debug('debug')
logger.info('info')
当在笔记本中调用模块代码时,我希望日志能够向上传播,然后顶部记录器仅打印信息日志语句。但是调试和信息日志语句都会显示。
相关链接:
- 来自this IPython issue,似乎需要注意两种不同级别的日志记录。一,在
ipython_notebook_config文件中设置,仅影响内部 IPython 日志记录级别。另一个是 IPython 记录器,使用get_ipython().parent.log访问。 - https://github.com/ipython/ipython/issues/8282
- https://github.com/ipython/ipython/issues/6746
【问题讨论】:
标签: python python-2.7 logging ipython