Python日志记录:INFO,DEBUG日志未显示。

4

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文档,应该显示超过设置的日志级别的日志。有人能解释为什么会发生这种情况吗?
另外,我应该如何启用DEBUG和INFO级别的日志?
1个回答

12
  1. 在设置日志级别时,您应该为记录器本身(在您的情况下是logger_obj)进行设置,而不是流处理器。处理器用于对日志应用其他过滤器,但首先需要由记录器本身进行过滤。

  2. DEBUG > INFO,因此如果您想查看所有日志,则必须将级别设置为DEBUG,而不是INFO。

简而言之,使用:

logger_obj.setLevel(logging.DEBUG)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接