2016-07-04 5 views
0

Python Версия: 2,7Python Logging: INFO, DEBUG Журналы не отображается

Я использую следующий код для отображения журналов на консоли. Однако журналы 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?

ответ

1
  1. Вы устанавливаете уровень протоколирования для обработчика потока в то время как вы должны сделать это для самого регистратора (logger_obj в вашем случае). Обработчик используется для применения дополнительных фильтров к журналам, но они сначала фильтруются самим журналом.

  2. DEBUG> INFO, поэтому вам нужно установить уровень в DEBUG, а не INFO (если вы хотите просмотреть все журналы).

короче, используйте:

logger_obj.setLevel(logging.DEBUG) 
Смежные вопросы