如何更改记录到IPython / Jupyter笔记本的级别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (52)
# 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')

当在笔记本中调用模块代码时,我希望日志能够被传播,然后顶部的记录器只打印INFO日志语句。但是,调试和信息日志语句都会显示出来。

提问于
用户回答回答于
# At the beginning of the notebook
import logging
logger = logging.getLogger()
assert len(logger.handlers) == 1
handler = logger.handlers[0]
handler.setLevel(logging.INFO)
用户回答回答于

在IPython内部,还必须更改IPython配置设置。例如,要降低调试消息的较低的日志记录阈值:

 %config Application.log_level=logging.DEBUG

光这还不够。还必须调整记录器的日志记录级别。例如,要从所有包/模块获取所有调试消息:

logging.getLogger().setLevel(logging.DEBUG)

或仅用于一个模块(参见__name__在该模块中的价值):

logging.getLogger('some.module').setLevel(logging.DEBUG)

扫码关注云+社区

领取腾讯云代金券