当前位置:  开发笔记 > 编程语言 > 正文

Python3和PyCharm - 在运行/调试中调试日志记录级别

如何解决《Python3和PyCharm-在运行/调试中调试日志记录级别》经验,为你挑选了1个好方法。

我刚开始使用PyCharm,有没有办法显示调试和信息警告?

import logging
logger = logging.getLogger('tipper')
logger.setLevel(logging.DEBUG)
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')

警告,错误,关键所有显示:

/home/username/someproject/.someprojectenv/bin/python3/home/username/someproject/go.py
warn message
error message
critical message

Process finished with exit code 0

但是调试,信息不显示.



1> Bakuriu..:

这个问题与PyCharm无关,但与日志配置的工作方式有关.如果您尝试编写在普通python交互式会话中显示的代码,则会得到相同的输出:

>>> import logging
>>> logger = logging.getLogger('tipper')
>>> logger.setLevel(logging.DEBUG)
>>> logger.debug('debug message')
>>> logger.info('info message')
>>> logger.warn('warn message')
warn message
>>> logger.error('error message')
error message
>>> logger.critical('critical message')
critical message

问题是设置logger的级别是不够的!您还必须向记录器添加处理程序,否则记录器将简单地将消息转发到链中.消息将最终出现在root记录器中,该记录器默认具有级别,logging.WARN因此丢弃DEBUG级别消息.

但是,如果您为logger所有工作添加处理程序:

>>> logger.addHandler(logging.StreamHandler())
>>> logger.debug('test')
test

您可以为每个记录器设置多个处理程序,每个处理程序可以具有不同的日志记录级别.

有关记录器和处理程序级别的更多信息,请参阅此问题.我也建议仔细阅读该文档logging模块和各种指南(如logging操作方法,因为它有一个非常先进的配置.

同样来自python3.2的dictConfig函数允许您将日志记录层次结构的配置指定为字典,而无需手动创建每个处理程序和记录器.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有