Python版本:2.7
我使用以下代码在控制台上显示日志。但是,不显示INFO和DEBUG日志。
代码
import logging
class LogTest():
def __init__(self):
logger_obj = logging.getLogger('Sample Logger')
console_logger = logging.StreamHandler()
console_logger.setLevel(logging.INFO)
logger_obj.addHandler(console_logger)
logger_obj.info('INFO LOG')
logger_obj.debug('DEBUG LOG')
logger_obj.error('ERROR LOG')
logger_obj.warning('WARNING LOG')
logger_obj.critical('CRITICAL LOG')
if __name__ == '__main__':
log_instance = LogTest()
输出
ERROR LOG
WARNING LOG
CRITICAL LOG
根据python documentation,应显示设置日志记录级别以上的日志。任何人都可以解释为什么会这样吗?
另外,我应该如何启用DEBUG和INFO日志?
答案 0 :(得分:4)
您必须为记录器本身设置流处理程序的日志级别(在您的情况下为logger_obj
)。处理程序用于将其他过滤器应用于日志,但它们首先由记录器本身过滤。
DEBUG> INFO,因此您必须将级别设置为DEBUG,而不是INFO(如果要查看所有日志)。
简而言之,使用:
logger_obj.setLevel(logging.DEBUG)