我刚开始使用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
但是调试,信息不显示.
这个问题与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
函数允许您将日志记录层次结构的配置指定为字典,而无需手动创建每个处理程序和记录器.