Jos*_*osh 16 python debugging logging pycharm python-3.x
我刚开始使用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')
Run Code Online (Sandbox Code Playgroud)
警告,错误,关键所有显示:
/home/username/someproject/.someprojectenv/bin/python3/home/username/someproject/go.py
warn message
error message
critical message
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)
但是调试,信息不显示.
Bak*_*riu 18
这个问题与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
Run Code Online (Sandbox Code Playgroud)
问题是设置logger的级别是不够的!您还必须向记录器添加处理程序,否则记录器将简单地将消息转发到链中.消息将最终出现在root记录器中,该记录器默认具有级别,logging.WARN因此丢弃DEBUG级别消息.
但是,如果您为logger所有工作添加处理程序:
>>> logger.addHandler(logging.StreamHandler())
>>> logger.debug('test')
test
Run Code Online (Sandbox Code Playgroud)
您可以为每个记录器设置多个处理程序,每个处理程序可以具有不同的日志记录级别.
有关记录器和处理程序级别的更多信息,请参阅此问题.我也建议仔细阅读该文档logging模块和各种指南(如logging操作方法,因为它有一个非常先进的配置.
同样来自python3.2的dictConfig函数允许您将日志记录层次结构的配置指定为字典,而无需手动创建每个处理程序和记录器.
| 归档时间: |
|
| 查看次数: |
7745 次 |
| 最近记录: |