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

psy*_*der 2 python logging python-2.7

的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()
Run Code Online (Sandbox Code Playgroud)

输出量

ERROR LOG
WARNING LOG
CRITICAL LOG
Run Code Online (Sandbox Code Playgroud)

根据python文档,应显示高于设置的日志记录级别的日志。谁能解释为什么会这样?

另外,我应该如何启用DEBUG和INFO日志?

use*_*345 6

  1. 您在为流处理程序设置日志级别时,必须为记录器本身设置日志级别(logger_obj在您的情况下)。处理程序用于将其他过滤器应用于日志,但首先由记录器本身对其进行过滤。

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

简而言之,使用:

logger_obj.setLevel(logging.DEBUG)
Run Code Online (Sandbox Code Playgroud)